Hallo,
ich habe ein Vokabellernprogramm geschrieben, bei dem man seine Vokabeln selber erstellen muss. Am Anfang öffnet sich ein Fenster, wo man die Vokabeln abfragen lassen kann, doch man muss erst Vokabeln laden, die man erstellt hat. Um diese zu erstellen klickt man in der Menüleiste auf "Kartensatz erstellen".
Wenn ich auf Kartensatz erstellen klicke wird die Methode guiÄndern() aufgerufen. Dort wird mit removeAll() jedes Komponent vond dem JPanel entfernt, und es werden neue JTextFields usw. erstellt. Die Gui sieht dann genau gleich aus, aber ich muss es so machen, da ich ja neue Listener brauche(oder?). Das Problem ist nur, dass wenn ich auf Kartensatz erstellen klicke, dass dann das JFrame ohne JPanel erscheint! Doch wenn ich mit der Maus über das Frame rüberfahre erscheint plötzlich der JButton! Genauso, wenn ich mit der maus auf die Stelle klicke, wo die JTextFields sind! Das ist schon alles sehr komisch... Ich poste mal den Code von den beiden guiErstellen Methoden:
Hier die andere Methode:
Wenn ihr wollt, poste ich noch den restlichen Code...
LG,
mathaisj
ich habe ein Vokabellernprogramm geschrieben, bei dem man seine Vokabeln selber erstellen muss. Am Anfang öffnet sich ein Fenster, wo man die Vokabeln abfragen lassen kann, doch man muss erst Vokabeln laden, die man erstellt hat. Um diese zu erstellen klickt man in der Menüleiste auf "Kartensatz erstellen".
Wenn ich auf Kartensatz erstellen klicke wird die Methode guiÄndern() aufgerufen. Dort wird mit removeAll() jedes Komponent vond dem JPanel entfernt, und es werden neue JTextFields usw. erstellt. Die Gui sieht dann genau gleich aus, aber ich muss es so machen, da ich ja neue Listener brauche(oder?). Das Problem ist nur, dass wenn ich auf Kartensatz erstellen klicke, dass dann das JFrame ohne JPanel erscheint! Doch wenn ich mit der Maus über das Frame rüberfahre erscheint plötzlich der JButton! Genauso, wenn ich mit der maus auf die Stelle klicke, wo die JTextFields sind! Das ist schon alles sehr komisch... Ich poste mal den Code von den beiden guiErstellen Methoden:
Java:
public void guiErstellen() {
frame.setSize(500,600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainPanel = new JPanel();
Font bigFont = new Font("sanserif", Font.BOLD, 24);
frage = new JTextArea(6,20);
antwort = new JTextArea(6,20);
JLabel fragel = new JLabel("Frage: ");
JLabel antwortl = new JLabel("Antwort: ");
prüfen = new JButton("Prüfen");
prüfen.setEnabled(false);
prüfen.addActionListener(new prüfenListener());
nächsteKarteButton = new JButton("Nächste Karte");
nächsteKarteButton.setEnabled(false);
nächsteKarteButton.addActionListener(new nächsteKarteBListener());
JMenuBar menüleiste = new JMenuBar();
JMenu datei = new JMenu("Datei");
JMenuItem laden = new JMenuItem("Kartensatz laden");
JMenuItem erstellen = new JMenuItem("Kartensatz erstellen");
laden.addActionListener(new ladenListener());
erstellen.addActionListener(new erstellenListener());
datei.add(laden);
datei.add(erstellen);
menüleiste.add(datei);
frage.setEditable(false);
frage.setLineWrap(true);
antwort.setLineWrap(true);
frage.setWrapStyleWord(true);
antwort.setWrapStyleWord(true);
frage.setFont(bigFont);
antwort.setFont(bigFont);
JScrollPane fscroller = new JScrollPane(frage);
fscroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
fscroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
JScrollPane ascroller = new JScrollPane(antwort);
ascroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
ascroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
mainPanel.add(fragel);
mainPanel.add(fscroller);
mainPanel.add(antwortl);
mainPanel.add(ascroller);
mainPanel.add(prüfen);
mainPanel.add(nächsteKarteButton);
frame.setJMenuBar(menüleiste);
frame.add(BorderLayout.CENTER, mainPanel);
frame.setVisible(true);
Hier die andere Methode:
Java:
public void guiÄndern() {
mainPanel.removeAll();
frame.setSize(500,600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainPanel = new JPanel();
Font bigFont2 = new Font("sanserif", Font.BOLD, 24);
frage2 = new JTextArea(6,20);
antwort2 = new JTextArea(6,20);
JLabel fragel2 = new JLabel("Frage: ");
JLabel antwortl2 = new JLabel("Antwort: ");
nächsteKarteButton2 = new JButton("Nächste Karte");
nächsteKarteButton2.addActionListener(new nächsteKarteB2Listener());
JMenuBar menüleiste2 = new JMenuBar();
JMenu datei2 = new JMenu("Datei");
JMenuItem neu = new JMenuItem("Neu");
JMenuItem speichern = new JMenuItem("Kartensatz speichern");
JMenuItem abfragen = new JMenuItem("Kartensatz laden und abfragen");
neu.addActionListener(new neuListener());
speichern.addActionListener(new speichernListener());
abfragen.addActionListener(new abfragenListener());
datei2.add(neu);
datei2.add(speichern);
datei2.add(abfragen);
menüleiste2.add(datei2);
frage2.setLineWrap(true);
antwort2.setLineWrap(true);
frage2.setWrapStyleWord(true);
antwort2.setWrapStyleWord(true);
frage2.setFont(bigFont2);
antwort2.setFont(bigFont2);
JScrollPane fscroller2 = new JScrollPane(frage2);
fscroller2.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
fscroller2.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
JScrollPane ascroller2 = new JScrollPane(antwort2);
ascroller2.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
ascroller2.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
mainPanel.add(fragel2);
mainPanel.add(fscroller2);
mainPanel.add(antwortl2);
mainPanel.add(ascroller2);
mainPanel.add(nächsteKarteButton2);
frame.setJMenuBar(menüleiste2);
frame.add(BorderLayout.CENTER, mainPanel);
frame.setVisible(true);
}
Wenn ihr wollt, poste ich noch den restlichen Code...
LG,
mathaisj