我已经从oracle-example复制了我的大部分代码,所以我认为至少我没有添加的代码应该是正确的,我不想改变它。但是在oracle代码中我无法实现这一行来正确关闭我的JFrame:frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING));
private static void createGUI() {
JFrame frame = new JFrame("NameChooser");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
...
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createGUI();
}
});
}
public void actionPerformed(ActionEvent e) {
if (e.getSource()==skipButton){
frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING)); WindowEvent.WINDOW_CLOSING)); // does not work ofc
}
}
如何在不破坏打开JFrame的正确方法的情况下关闭actionPerformed方法中的JFrame?
或者这个oracle代码是否适用于示例而不适用于实际应用程序?
答案 0 :(得分:0)
你应该frame
这样的实例字段:
private static JFrame frame;
private static void createGUI()
{
frame = new JFrame( "NameChooser" );
...
}