你用的 swing 吗?加上 setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
addWindowListener(new WindowAdapter() {
public void windowClosing (WindowEvent we) {
dispose();
}
});
窗口关闭事件是windowClosing,不是windowClosed。
windowClosed是父组件关闭它的时候调用。
import javaawt;
import javaawtevent;
public class Testscoll {
public Testscoll() {
Frame f = new Frame("javascollpane");
ScrollPane scr = new ScrollPane();
TextArea text = new TextArea("", 50, 50, TextAreaSCROLLBARS_NONE);
scradd(text);
fadd(scr);
fsetSize(60, 60);
fsetVisible(true);
faddWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {// <--不是windowClosed,是windowClosing
((Window) egetComponent())dispose();
Systemoutprint("Closing");
Systemexit(0);
}
});
}
public static void main(String[] args) {
new Testscoll();
}
}
只能用dispose释放当前窗口、比如thisdispose();
不能用Systemexit(0)\因为这样会关闭JVM中所有的资源,也就是关闭所有界面,等于结束当前程序。
;
第二个不能正常关闭的原因是程序显示的窗口(private Frame f)的 windowClosing 事件没有和终止程序的语句挂钩。
其实万事俱备只欠东风,因为程序里的 Interfaceforme 类是个截取 windowClosing 事件后马上终止程序的窗口事件监听器,
所以在 go( ) 方法里实例化 Frame 之后的任何地方直接加一句 faddWindowListener( this ); 即解决了问题。
以上就是关于java中关闭当前窗口用什么代码全部的内容,包括:java中关闭当前窗口用什么代码、JAVA关闭窗口问题、JAVA单击事件如何关闭当前窗口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)