Hallo!
Ich will über eine Menü-Aktion ein Fenster öffnen lassen. Es funktioniert aber nicht. Die Codes sind (auszugsweise):
das User Fenster ist:
Ich will über eine Menü-Aktion ein Fenster öffnen lassen. Es funktioniert aber nicht. Die Codes sind (auszugsweise):
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Hauptfenster extends JFrame {
BenutzerdefiniertesLevel user = new BenutzerdefiniertesLevel();
Rechenspiel rechenspiel = new Rechenspiel();
RichtigFenster right = new RichtigFenster();
...
// Instanzvariablen
private JLabel zahl1, zahl2, punkteAnzeige, lebenAnzeige, operator;
double erg, ergEingabe;
int z1, z2, zRaumAddi, zRaumSub, zRaumMulti, zRaumDivi, punkte, leben,
operatorZ;
byte operatorZZ;
private JPanel aufgabe, status;
JTextField ergebnis;
private String SLeben, SPunkte;
private JButton ok;
boolean negZahlenraum;
private Timer timer;
private JMenuBar menueLeiste;
private JMenu menueSpiel, menueLevel, menuUser;
JMenuItem itemNeu, itemEnd, itemUser, levelInfo;
JRadioButtonMenuItem radioLevel1, radioLevel2, radioLevel3, radioLevel4,
radioLevel5, radioLevelUser;
// Konstruktor
public Hauptfenster() {
super("Rechenspiel");
...
// Menü erstellen
menueLeiste = new JMenuBar();
// Spiel-Menü erstellen
menueSpiel = new JMenu("Spiel");
itemNeu = new JMenuItem("Neues Spiel", KeyEvent.VK_N);
itemNeu.addActionListener(new MenuAktionen());
itemEnd = new JMenuItem("Beenden");
itemEnd.addActionListener(new MenuAktionen());
menueSpiel.add(itemNeu);
menueSpiel.addSeparator();
menueSpiel.add(itemEnd);
// Level-Menü erstellen
menueLevel = new JMenu("Level");
radioLevel1 = new JRadioButtonMenuItem("Level1");
radioLevel1.addActionListener(new LevelMenuAction());
radioLevel2 = new JRadioButtonMenuItem("Level2");
radioLevel2.addActionListener(new LevelMenuAction());
radioLevel3 = new JRadioButtonMenuItem("Level3");
radioLevel3.addActionListener(new LevelMenuAction());
radioLevel4 = new JRadioButtonMenuItem("Level4");
radioLevel4.addActionListener(new LevelMenuAction());
radioLevel5 = new JRadioButtonMenuItem("Level5");
radioLevel5.addActionListener(new LevelMenuAction());
levelInfo = new JMenuItem("Level-Infos");
// Sub-Menü benutzerdefiniert erstellen
menuUser = new JMenu("benutzerdefiniert");
itemUser = new JMenuItem("Einstellungen");
radioLevelUser = new JRadioButtonMenuItem("verwenden");
menuUser.add(itemUser);
menuUser.add(radioLevelUser);
// Radio-Buttons in Button-Group zusammenfassen
ButtonGroup levelGroup = new ButtonGroup();
levelGroup.add(radioLevel1);
levelGroup.add(radioLevel2);
levelGroup.add(radioLevel3);
levelGroup.add(radioLevel4);
levelGroup.add(radioLevel5);
levelGroup.add(radioLevelUser);
menueLevel.add(radioLevel1);
menueLevel.add(radioLevel2);
menueLevel.add(radioLevel3);
menueLevel.add(radioLevel4);
menueLevel.add(radioLevel5);
menueLevel.add(menuUser);
menueLeiste.add(menueSpiel);
menueLeiste.add(menueLevel);
...
// Klasse für die Level-Menü-Aktionen class LevelMenuAction implements
public class LevelMenuAction implements ActionListener {
public void actionPerformed(ActionEvent levelEvent) {
...
if (levelEvent.getActionCommand() == itemUser.getText()) {
// BenutzerdefiniertesLevel-Fenster öffnen
user.setSize(500, 600);
user.setVisible(true); // <-------- hier ist das Problem
}
...
}
}
}
}
das User Fenster ist:
Code:
// Created on 24.07.2005
package s_moeller.rechenspiel;
// @author Simon Möller
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class BenutzerdefiniertesLevel extends JFrame {
private JLabel addi, sub, multi, divi, hinweis;
JTextField zRaumAddi, zRaumSub, zRaumMulti, zRaumDivi;
JCheckBox negZahlenraum;
JRadioButton addiUndSub, alle;
public BenutzerdefiniertesLevel() {
super("Benutzerdefinierte Einstellungen");
// Zahlenraum-Einstellungen
addi = new JLabel(
"Geben Sie hier Ihren Zahlenraum für die Addition ein: ");
sub = new JLabel(
"Geben Sie hier Ihren Zahlenraum für die Subtraktion ein: ");
multi = new JLabel(
"Geben Sie hier Ihren Zahlenraum für die Multiplikation ein: ");
divi = new JLabel(
"Geben Sie hier Ihren Zahlenraum für die Division ein: ");
zRaumAddi = new JTextField("", 10);
zRaumSub = new JTextField("", 10);
zRaumMulti = new JTextField("", 10);
zRaumDivi = new JTextField("", 10);
JPanel pAddi = new JPanel();
JPanel pSub = new JPanel();
JPanel pMulti = new JPanel();
JPanel pDivi = new JPanel();
pAddi.add(addi);
pAddi.add(zRaumAddi);
pSub.add(sub);
pSub.add(zRaumSub);
pMulti.add(multi);
pMulti.add(zRaumMulti);
pDivi.add(divi);
pDivi.add(zRaumDivi);
//Rechenarten-Einstellungen
hinweis = new JLabel(
"Wählen Sie aus, welche Rechenarten Sie verwenden wollen: ");
addiUndSub = new JRadioButton("Addition und Subtraktion", true);
alle = new JRadioButton("Alle Grundrechenarten");
ButtonGroup rechenarten = new ButtonGroup();
rechenarten.add(addiUndSub);
rechenarten.add(alle);
JPanel pRechenarten = new JPanel();
pRechenarten.add(hinweis);
pRechenarten.add(addiUndSub);
pRechenarten.add(alle);
//Negativer Zahlenraum erlaubt?
negZahlenraum = new JCheckBox(
"Soll auch der negative Zahlenraum verwendet werden?");
//OK-Button
JButton ok = new JButton("OK") ;
ActionListener end = new ActionListener() {
public void actionPerformed(ActionEvent end) {
setVisible(false);
}
};
ok.addActionListener(end);
//negZahlenraum und OK-Button in ein Panel
JPanel mix = new JPanel();
mix.add(negZahlenraum);
mix.add(ok);
//Zusammenfassen in der Content-Pane
this.getContentPane().setLayout(new GridLayout(6, 1, 10, 10));
this.getContentPane().add(pAddi);
this.getContentPane().add(pSub);
this.getContentPane().add(pMulti);
this.getContentPane().add(pDivi);
this.getContentPane().add(pRechenarten);
this.getContentPane().add(mix);
}
}
Wäre nett, wenn mir jemand helfen könnte.