JFrame Problem

Status
Nicht offen für weitere Antworten.
M

mave

Gast
Mit diesem Programm erzeuge ich eine Stundenplantafel, die Tage und Stunden in Labels anzeigt und die Fächer als Buttons anzeigt. Mit dem Button Optionen kann ich die Eingabe in Textfieldern als neuen JFrame öffnen.
Nun zu meinem Problem:
Wenn ich auf OK klicke speichert meine Programm die Daten in ein Textdokument, doch muss ich das Programm
neu starten um die Änderungen wirksam zu machen, deshalb möchte ich euch bitten mir zu helfen damit sich der Parent JFrame aktualisiert.
Danke für eure hilfe!

Code zum Start des Frames
Code:
import javax.swing.*;
import java.awt.*;

public class OrganizerTest
{
    public static void erzeugeFenster()
    {
    JFrame f = new Anzeige("Head");
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setLocationRelativeTo(null);
    f.pack();
    f.setVisible(true);
    }
    public static void main(String[] args)
    {
    SwingUtilities.invokeLater(new Runnable () {
    public void run(){
    erzeugeFenster();
    }
}
};
}
}

Code des Angezeigten Fensters
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;

public class Anzeige extends JFrame implements ActionListener
{
	JButton option = new JButton("Optionen");

	public Anzeige(String titel)
	{
		super (titel);
		Container c = getContentPane();
    c.setLayout(new BorderLayout());


		JPanel tab = new JPanel();
		JPanel tage = new JPanel();
		JPanel south = new JPanel();

		JLabel[] labM = new JLabel[11];
		JButton[] butM = new JButton[56];
		tab.setLayout(new GridLayout(6,11));

		for(int i = 0; i<11; i++)
		{
			labM[i] = new JLabel("" + (i+1),JLabel.CENTER);
			tab.add(labM[i]);
		}

		for(int i = 0; i<55; i++)
		{
			butM[i] = new JButton("");
			tab.add(butM[i]);
		}
		String[] stu = new String[55];
 	try
		{
			File fn = new File("Stundenplan.txt");
		  Reader re = new FileReader(fn);
		  BufferedReader bre = new BufferedReader(re);
			String s = "";

			for(int k=0; k<6; k++)
				s = s + bre.readLine();
			int l = 0;

			String[] ergebnis = s.split("\t");
				for(l=0; l<ergebnis.length; l++)
					stu[l]=ergebnis[l];

		for(int m=0; m<55; m++)
			butM[m].setText(stu[m]);

		}
		catch ( IOException e )
		{
		  System.out.println( "Error reading file!" );
		}




   tage.setLayout(new GridLayout(6,1));
    JLabel oo = new JLabel("");
    JLabel mo = new JLabel("Montag");
    JLabel di = new JLabel("Dienstag");
    JLabel mi = new JLabel("Mittwoch");
    JLabel don= new JLabel("Donnerstag");
    JLabel fr = new JLabel("Freitag");
    tage.add(oo);
    tage.add(mo);
    tage.add(di);
    tage.add(mi);
    tage.add(don);
    tage.add(fr);

    south.setLayout(new BorderLayout());
    JPanel but = new JPanel();
    but.setLayout(new GridLayout(1,2));
    but.add(option);
    south.add(but, BorderLayout.EAST);
    option.addActionListener(this);


    this.add(tab, BorderLayout.CENTER);
    this.add(tage, BorderLayout.WEST);
//    this.add(st, BorderLayout.NORTH);
    this.add(south, BorderLayout.SOUTH);


	}//Anzeige


	public void actionPerformed(ActionEvent e)
	{
		if(e.getSource()==option)
		{
			JFrame f2 = new Tabelle("Stundenplaneingabe");
			f2.setSize(800,300);
			f2.setLocationRelativeTo(null);
			f2.setVisible(true);
		}
	}
}

Code des zu öffnenden JFrames um die Daten einzugeben
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

public class Tabelle extends JFrame implements ActionListener
{

  JButton ok = new JButton("OK");
  JButton abbrechen = new JButton("Abbrechen");
  JTextField[] tf = new JTextField[56];
  public Tabelle(String titel)
  {
		super (titel);

    Container c = getContentPane();
    c.setLayout(new BorderLayout());

    JPanel tab = new JPanel();
    JPanel tage = new JPanel();
    JPanel st = new JPanel();
    JPanel but = new JPanel();



    tab.setLayout(new GridLayout(5,11));
    for(int i = 1; i<56; i++)
      { tf[i] = new JTextField(" ");
        tab.add(tf[i]);
      }

    tage.setLayout(new GridLayout(5,1));
    JLabel mo = new JLabel("Montag");
    JLabel di = new JLabel("Dienstag");
    JLabel mi = new JLabel("Mittwoch");
    JLabel don= new JLabel("Donnerstag");
    JLabel fr = new JLabel("Freitag");
    tage.add(mo);
    tage.add(di);
    tage.add(mi);
    tage.add(don);
    tage.add(fr);

    st.setLayout(new GridLayout(1,12));
    JLabel leer = new JLabel("",JLabel.CENTER);
    JLabel s1 = new JLabel("1",JLabel.CENTER);
    JLabel s2 = new JLabel("2",JLabel.CENTER);
    JLabel s3 = new JLabel("3",JLabel.CENTER);
    JLabel s4 = new JLabel("4",JLabel.CENTER);
    JLabel s5 = new JLabel("5",JLabel.CENTER);
    JLabel s6 = new JLabel("6",JLabel.CENTER);
    JLabel s7 = new JLabel("7",JLabel.CENTER);
    JLabel s8 = new JLabel("8",JLabel.CENTER);
    JLabel s9 = new JLabel("9",JLabel.CENTER);
    JLabel s10 = new JLabel("10",JLabel.CENTER);
    JLabel s11 = new JLabel("11",JLabel.CENTER);
    st.add(leer);
    st.add(s1);
    st.add(s2);
    st.add(s3);
    st.add(s4);
    st.add(s5);
    st.add(s6);
    st.add(s7);
    st.add(s8);
    st.add(s9);
    st.add(s10);
    st.add(s11);

    JPanel south = new JPanel();
    south.setLayout(new BorderLayout());
    but.setLayout(new GridLayout(1,2));
    but.add(abbrechen);
    but.add(ok);
    south.add(but, BorderLayout.EAST);

    c.add(tab, BorderLayout.CENTER);
    c.add(south, BorderLayout.SOUTH);
    c.add(tage, BorderLayout.WEST);
    c.add(st, BorderLayout.NORTH);
    ok.addActionListener(this);
    abbrechen.addActionListener(this);
	String[] stu = new String[55];

   	try
		{
			File fn = new File("Stundenplan.txt");
		  Reader re = new FileReader(fn);
		  BufferedReader bre = new BufferedReader(re);
			String s = "";

			for(int i=0; i<6; i++)
				s = s + bre.readLine();
			int i = 0;

			String[] ergebnis = s.split("\t");
				for(i=0; i<ergebnis.length; i++)
					stu[i]=ergebnis[i];


		}
		catch ( IOException e )
		{
		  System.out.println( "Error reading file!" );
		}

		for(int i=1; i<=55; i++)
			tf[i].setText(stu[i-1]);
  }


  public void actionPerformed(ActionEvent e)
  {
    if(e.getSource()==ok)
    {
			schreibeFile();
			this.setVisible(false);
			this.dispose();
		}

    if(e.getSource()==abbrechen)
    {
			this.setVisible(false);
			this.dispose();
		}
  }

  public void schreibeFile()
  {
    PrintWriter pw;
    try{
      File x = new File("Stundenplan.txt");
      Writer fw = new FileWriter(x);
      BufferedWriter bw = new BufferedWriter(fw);
			for(int i=1; i<=55; i++){
			if(i%11==1)
				bw.write("\n");
      bw.write(tf[i].getText()+"\t");
      }
      bw.flush();
      bw.close();

    }catch(IOException e){}
  }
}
 
S

SlaterB

Gast
du hast zweimal den Ladecode
new File("Stundenplan.txt"); usw.

eine solche Codeverdopplung macht in keinem Programm dieser Welt Sinn,
das kannst du dir schonmal merken, wann immer du 10 komplizierte Zeilen 2x in deinem Code siehst, dann gehört dieser in eine einzelne Operation ausgelagert,
(falls möglich, nicht immer einfach)

die Auslagerung brauchst du in diesem Fall sowieso,
wenn du eine Operation fuelleAusDatei() hast,
dann kannst du sie nach dem schreiben aufrufen und hast die Daten geladen,
schlauer wäre natürlich, die Daten, die du wegschreibst direkt weiterzugeben
 
M

mave

Gast
ist ok, trotzdem möcht ich gern wissen wie ich vom aufgerufenen frame auf den parentframe zugreifen kann
 
S

SlaterB

Gast
du übergibst das Parent im Konstruktor von Tabelle als Parameter,
wenn du speicherst, dann rufst du auch
parent.hierSindDeineDaten(Parameter) auf

die Daten können entweder sowas wie
String[] stu = new String[55];
sein, oder auch im simplen aber unsauberen Fall das eigenen Tabelle-JFrame (this)
und der parent fragt dann die Textfelder einzeln ab
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
GianaSisters JFrame mit JInternalFrames, Keylistener-Problem AWT, Swing, JavaFX & SWT 9
A Problem mit JFrame in separater Klasse AWT, Swing, JavaFX & SWT 3
M JFrame Graphics.drawString Problem AWT, Swing, JavaFX & SWT 11
O Problem mit JFrame auf Linux Mint 13 Maya in VirtualBox AWT, Swing, JavaFX & SWT 3
B Schwer zu beschreibendes Problem mit JFrame oder JButton AWT, Swing, JavaFX & SWT 8
S JFrame problem mit Scrolling AWT, Swing, JavaFX & SWT 2
P Problem beim erstellen eines JPanel in einem JFrame AWT, Swing, JavaFX & SWT 7
L JFrame/Content Pane height Problem AWT, Swing, JavaFX & SWT 4
F Swing Problem mit KeyListener||paintComponent() in JFrame AWT, Swing, JavaFX & SWT 12
L Swing Größen-Problem mit JFrame AWT, Swing, JavaFX & SWT 2
Developer_X Swing JFrame problem AWT, Swing, JavaFX & SWT 5
F jFrame Problem. AWT, Swing, JavaFX & SWT 3
T JFrame Componenten Problem AWT, Swing, JavaFX & SWT 17
B Swing Problem mit Jframe AWT, Swing, JavaFX & SWT 9
Iron Monkey JFrame Problem mit setAlwaysOnTop AWT, Swing, JavaFX & SWT 2
M JFrame - Problem mit Bildaufbau AWT, Swing, JavaFX & SWT 17
L JFrame Refresh-Problem AWT, Swing, JavaFX & SWT 4
A Problem mit Jframe und mouseevent AWT, Swing, JavaFX & SWT 10
F JFrame Close Problem AWT, Swing, JavaFX & SWT 1
C TextArea Problem :( TextArea über komplettem JFrame AWT, Swing, JavaFX & SWT 2
T Editor auf Basis JFrame in ein JPanel wandeln - Problem! AWT, Swing, JavaFX & SWT 5
X JFrame Icon problem AWT, Swing, JavaFX & SWT 3
G Swing Jframe Problem AWT, Swing, JavaFX & SWT 4
Y Problem mit JFrame und Panel (Schliessen eines JFrame) AWT, Swing, JavaFX & SWT 8
O JFrame Problem AWT, Swing, JavaFX & SWT 2
V Listener Problem im JFrame AWT, Swing, JavaFX & SWT 4
V JFrame -> JDialog -> JDialog: Problem owner AWT, Swing, JavaFX & SWT 3
G MouseEvent Problem mit JFrame über einen modalen JDialog AWT, Swing, JavaFX & SWT 3
B Kleines JFrame Problem (oder doch größer?) AWT, Swing, JavaFX & SWT 2
A Problem mit JFrame AWT, Swing, JavaFX & SWT 2
H Mehrere Panels auf JFrame AWT, Swing, JavaFX & SWT 8
M Seltsame Exception bei setVisible(true) Methode in einem JFrame AWT, Swing, JavaFX & SWT 2
Paty JFrame anfänger bräuchte hilfestellung AWT, Swing, JavaFX & SWT 7
Apfelbaum2005 Swing JFrame mehrere JPanels mit unterschiedlichen Formen hinzufügen AWT, Swing, JavaFX & SWT 1
N AWT JPanel zu Jframe hinzufügen AWT, Swing, JavaFX & SWT 2
Mausposition relativ zu JFrame bekommen AWT, Swing, JavaFX & SWT 6
sserio JFrame setIconImmage() funktioniert nicht AWT, Swing, JavaFX & SWT 3
N CPU Belastung bei offenem JFrame auf fast 100% AWT, Swing, JavaFX & SWT 15
N Knopf ganz oben (JFrame) AWT, Swing, JavaFX & SWT 9
N JFrame löscht alles, wenn groß gemacht AWT, Swing, JavaFX & SWT 9
N jFrame löscht am Ende des Threads alles AWT, Swing, JavaFX & SWT 2
N JFrame loescht alles, sobald der Thread zuende ist AWT, Swing, JavaFX & SWT 22
E JFrame resizing AWT, Swing, JavaFX & SWT 2
E Swing Mausposition auf einem JFrame erkennen AWT, Swing, JavaFX & SWT 5
Lunar Swing JFrame erstellt; weitere Elemente werden nicht eingefügt/sind nicht zu sehen AWT, Swing, JavaFX & SWT 4
L JFrame Gui in anderer Methode aufrufen AWT, Swing, JavaFX & SWT 0
H Beim JFrame erstellen ein anderes schließen AWT, Swing, JavaFX & SWT 0
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
H Tabelle in JFrame einfügen AWT, Swing, JavaFX & SWT 1
VPChief Ein JFrame ohne setUndecorated(true); nicht verschiebbar machen. AWT, Swing, JavaFX & SWT 6
R Swing Hat mein JFrame meinen Component? AWT, Swing, JavaFX & SWT 2
R Swing Design des oberen Balkens in JFrame AWT, Swing, JavaFX & SWT 2
B KeyListener auf JFrame reagiert nicht AWT, Swing, JavaFX & SWT 8
R Swing Komponente im JFrame überschreinen sich AWT, Swing, JavaFX & SWT 7
R Swing Ein gezeichneten String aus dem JFrame löschen AWT, Swing, JavaFX & SWT 5
J Exception beim JFrame erstellen AWT, Swing, JavaFX & SWT 6
T JFrame aktualisieren AWT, Swing, JavaFX & SWT 2
T Bilder bei einem JFrame einfügen AWT, Swing, JavaFX & SWT 4
R Swing Background Image in JFrame implementieren AWT, Swing, JavaFX & SWT 40
L Verbindung von Code und JFrame AWT, Swing, JavaFX & SWT 4
L JFrame wird zu klein erstellt AWT, Swing, JavaFX & SWT 7
dereki2000 Swing JFrame nah hinzufügen von Komponenten akualisieren. AWT, Swing, JavaFX & SWT 2
T JFrame Bild einfügen AWT, Swing, JavaFX & SWT 9
T JavaFX JFrame verhalten wie JOptionPane (ErrorMessage) AWT, Swing, JavaFX & SWT 1
T LookAndFeel LookAndFeel funktioniert nicht beim JFrame wechsel AWT, Swing, JavaFX & SWT 3
P Swing Mehrere JPanels auf ein JFrame hinzufügen? AWT, Swing, JavaFX & SWT 2
F JFrame zeigt nicht alle Elemente auf anhieb an AWT, Swing, JavaFX & SWT 4
P JPanle, JFrame und Graphics AWT, Swing, JavaFX & SWT 2
T Reihenfolge der Komponenten im einem JFrame AWT, Swing, JavaFX & SWT 8
K Grafik in JFrame einpassen AWT, Swing, JavaFX & SWT 3
D Mit Jmenu neue JFrame öffnen AWT, Swing, JavaFX & SWT 2
J BackgroundJPanel passt sich dem JFrame nicht an AWT, Swing, JavaFX & SWT 7
C Swing JFrame ändert Größe AWT, Swing, JavaFX & SWT 0
J JFrame Panel hinzufügen AWT, Swing, JavaFX & SWT 10
K JFrame bei JUnit Tests AWT, Swing, JavaFX & SWT 2
W Swing Hilfe beim Einbinden von Bildern in einem JFrame AWT, Swing, JavaFX & SWT 8
D JFrame wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 1
R Swing JPanels auf JFrame auf verfügbaren Platz aufblasen AWT, Swing, JavaFX & SWT 4
JR2205 Swing JxMaps Einbindung Netbeans JFrame AWT, Swing, JavaFX & SWT 4
Zar von Domarus JFrame zu BufferedImage konvertieren AWT, Swing, JavaFX & SWT 3
K KeyListener ohne JFrame AWT, Swing, JavaFX & SWT 9
Joker4632 JFrame in eine Runnable auslagern? AWT, Swing, JavaFX & SWT 4
M Limit für JFrame-Vergrößerung AWT, Swing, JavaFX & SWT 8
GreenTeaYT Wie vergebe Ich den Jframe Title den Namen aus einem Element von der Arraylist ? AWT, Swing, JavaFX & SWT 4
MaxG. JFrame Größe ändern AWT, Swing, JavaFX & SWT 16
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
G Swing Wenn ich mein JFrame Fenster vergrößere die Inhalte anpassen AWT, Swing, JavaFX & SWT 1
G JFrame Probleme AWT, Swing, JavaFX & SWT 2
Ghostman1711 JFrame closing AWT, Swing, JavaFX & SWT 3
R Engineklasse mit JFrame AWT, Swing, JavaFX & SWT 4
M Default-WindowListener JFrame entfernen (Stichwort: iconified) AWT, Swing, JavaFX & SWT 4
ms_cikar Jframe zurück zu frame1 AWT, Swing, JavaFX & SWT 14
C Jframe ohne Rahmen AWT, Swing, JavaFX & SWT 3
lumpigerAffe Swing Jframe aktualisieren AWT, Swing, JavaFX & SWT 27
A Swing JFrame neuzeichnen lassen, position neu berechnen lassen? AWT, Swing, JavaFX & SWT 9
R JFrame schließen AWT, Swing, JavaFX & SWT 9
P Swing JFrame minimiert sich bei Doppelklick auf die Titel-Leiste AWT, Swing, JavaFX & SWT 17
krgewb AWT JFrame soll sich wie Dialog verhalten AWT, Swing, JavaFX & SWT 9
I JFrame an Bildschirm anpassen AWT, Swing, JavaFX & SWT 1
I JFrame Bild strecken und auf Bildschirmgröße anpassen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben