Ich hab ne Klasse JTest mit welcher ich die statische Methode createDialog() der Klasse JTestDialog aufrufe. Damit erzeuge ich einen modalen JDialog, welcher einen JButton enthält, mit welchem man den JDialog schliessen kann.
Der ActionListener befindet sich in der Klasse JTestAction. Wird der JButton ("Dispose") gedrückt, so wird die statische Methode closeDialog() der JTestDialog-Klasse aufgerufen. Diese Methode ruft die Methode #dispose() auf...
Ist der JDialog modal, wird ne NullPointerException geworfen
was mach ich falsch?
Der ActionListener befindet sich in der Klasse JTestAction. Wird der JButton ("Dispose") gedrückt, so wird die statische Methode closeDialog() der JTestDialog-Klasse aufgerufen. Diese Methode ruft die Methode #dispose() auf...
Ist der JDialog modal, wird ne NullPointerException geworfen
ist er nicht modal, so funzts...Exception occurred during event dispatching:
java.lang.NullPointerException
was mach ich falsch?
Code:
public class JTest {
public JTest() {
JTestDialog.createDialog();
}
public static void main(String[] args) {
new JTest();
}
}
Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class JTestAction implements ActionListener {
public static JTestAction JTA = new JTestAction();
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("DISPOSE")) {
JTestDialog.closeDialog();
}
}
}
Code:
import javax.swing.JButton;
import javax.swing.JDialog;
public class JTestDialog extends JDialog {
public static JTestDialog dg = null;
public JTestDialog() {
setModal(true); //wenn modal, fehler beim schliessen mit dispose();
JButton dispose = new JButton("Dispose");
dispose.setActionCommand("DISPOSE");
dispose.addActionListener(JTestAction.JTA);
add("Center", dispose);
pack();
setVisible(true);
}
public static void createDialog() {
dg = new JTestDialog();
}
public static void closeDialog() {
dg.dispose();
}
}