Hallo User des Java-Forums
Ich habe ein wirklich merkwürdiges Problem und bin echt am Verzweifeln
Hier erstmal mein Code:
in dieser Form läuft der Code anstandslos. Wenn ich den Button klicke, wird die Methode actionPerformed des ActionListeners ausgeführt und der Text wird ausgegeben. Ändere ich die Zeile mit dem JFrame wie folgt ab(und verändere natürlich den Typ von win entsprechend):
dann wird nichts mehr ausgegeben. rootWin ist einfach das Hauptfenster der Anwendung.
Und ich verstehe nun überhaupt nicht, warum es bei JFrame geht und bei JDialog nicht.
Der Button ist doch noch derselbe!!
Ich hoffe jemand weis die Anwort. Danke schonmal im Vorraus! ^^
Liebe Grüße
Frank
Ich habe ein wirklich merkwürdiges Problem und bin echt am Verzweifeln
Hier erstmal mein Code:
Java:
public class AccountController implements IController, ActionListener {
private IView view;
public AccountController(JFrame rootWin) {
view = new AccountView(rootWin);
view.addListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Dies ist ein Test");
}
}
public class AccountView extends JPanel implements IView {
/**
* Instance variable JPanel was asking for
*/
private static final long serialVersionUID = 1L;
JButton ok;
JTextField accountName;
JComboBox accountType;
JFrame win;
protected AccountView(JFrame rootWin) {
//define variables
JPanel creationPanel;
//create all Components
creationPanel = new JPanel();
accountName = new JTextField();
accountType = new JComboBox();
for (String s : Account.getNames())
accountType.addItem(s);
ok = new JButton("OK");
ok.setActionCommand("ok");
//set all Layout Managers
creationPanel.setLayout(new GridLayout(0,2));
setLayout(new BorderLayout());
//Component hierarchy
creationPanel.add(new JLabel ("Bezeichung:"));
creationPanel.add(new JLabel ("Typ:"));
creationPanel.add(accountName);
creationPanel.add(accountType);
creationPanel.add(new JLabel (" "));
creationPanel.add(ok);
add(creationPanel, BorderLayout.SOUTH);
win = new JFrame("hallo");
win.add(this);
win.pack();
win.setVisible(true);
}
public void addListener(IController listener) {
ok.addActionListener((ActionListener) listener);
}
}
in dieser Form läuft der Code anstandslos. Wenn ich den Button klicke, wird die Methode actionPerformed des ActionListeners ausgeführt und der Text wird ausgegeben. Ändere ich die Zeile mit dem JFrame wie folgt ab(und verändere natürlich den Typ von win entsprechend):
Java:
win = new JDialog(rootWin, "hallo", true);
dann wird nichts mehr ausgegeben. rootWin ist einfach das Hauptfenster der Anwendung.
Und ich verstehe nun überhaupt nicht, warum es bei JFrame geht und bei JDialog nicht.
Der Button ist doch noch derselbe!!
Ich hoffe jemand weis die Anwort. Danke schonmal im Vorraus! ^^
Liebe Grüße
Frank