
JFrame的关闭不像Frame,点关闭按钮自己会关闭,但是那样做不好可以用setDefaultCloseOperation(int operation);其中operation有以下几种
DO_NOTHING_ON_CLOSE(在 WindowConstants 中定义):不执行任何 *** 作;要求程序在已注册的 WindowListener 对象的 windowClosing 方法中处理该 *** 作。
HIDE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册的 WindowListener 对象后自动隐藏该窗体。
DISPOSE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册 WindowListener 的对象后自动隐藏并释放该窗体。
EXIT_ON_CLOSE(在 JFrame 中定义):使用 System exit 方法退出应用程序。仅在应用程序中使用。
默认情况下,该值被设置为 HIDE_ON_CLOSE。更改此属性的值将导致激发属性更改事件,其属性名称为 "defaultCloseOperation"。
通常情况下,在cmd运行java程序后,如果关闭cmd窗口,java程序也会随之关闭。
如果你编写的是命令行交互的程序,这当然没问题。如果是GUI程序,这时如果关闭cmd窗口(也许你是觉得它影响美观),很糟糕,GUI界面也随之消失了。
如何才能关闭cmd而不关闭java gui界面呢?答案是:javaw 。在java安装目录下,除了有javaexe供我们运行编译好的class文件外,还有一个javawexe文件,这个命令就可以实现我们的目的。
如果你平时是这样运行java程序的:java Test,这时只需要稍稍更改下:javaw Test即可。等GUI出来以后,关闭cmd窗口即可。
另外还有一个方法,就是把你所有的class文件打包成jar文件,双击即可运行,也就不需要打开cmd了。
java关闭窗口可以使用dispose(),只是该窗体在内存中所占有的资源得到了释放,而整个程序并没有因此而退出,如果整个程序要退出,在以javaawt中的frame为控件时,需手动添加:Systemexit();
而在以javaxSwing中的jFrame为控件时,一般不需要再写相应的事件,默认点击窗体上的小叉时,是隐藏,当然你可更改其参数。
import javaawt;
import javaawtevent;
import javaio;
import javaxswing;
import javaxswingborder;
class WindowOperations extends JFrame implements ActionListener{
JRadioButton shut, restart, logoff;
public WindowOperations(){
super("Window");
setSize(200,200);
setResizable(false);
setVisible(true);
JPanel p1 = new JPanel();
p1setLayout(new BoxLayout(p1, BoxLayoutY_AXIS));
p1setBorder(new TitledBorder(new EtchedBorder(), "Operations"));
ButtonGroup group = new ButtonGroup();
shut = new JRadioButton("Shutdown (F1)");
restart = new JRadioButton("Restart (F2)");
logoff = new JRadioButton("Logoff (F3)");
groupadd(shut);
groupadd(restart);
groupadd(logoff);
shutaddActionListener(this);
restartaddActionListener(this);
logoffaddActionListener(this);
p1add(shut);
p1add(restart);
p1add(logoff);
getContentPane()add(p1, BorderLayoutCENTER);
JPanel p2 = new JPanel();
JButton ok = new JButton("OK");
okaddActionListener(this);
p2add(ok);
getContentPane()add(p2, BorderLayoutSOUTH);
addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent ke){
try{
switch(kegetKeyCode()){
case KeyEventVK_F1:
Shutdown();
break;
case KeyEventVK_F2:
Restart();
break;
case KeyEventVK_F3:
Logoff();
break;
}
}catch(IOException e){}
}
});
requestFocus();
Dimension screenSize = ToolkitgetDefaultToolkit()getScreenSize();
setLocation((screenSizewidth - getWidth())/2, (screenSizeheight - getHeight())/2);
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void Shutdown() throws IOException{
Process p = RuntimegetRuntime()exec("shutdown -s -t 00");
}
public void Restart() throws IOException{
Process p = RuntimegetRuntime()exec("shutdown -r -t 00");
}
public void Logoff() throws IOException{
Process p = RuntimegetRuntime()exec("shutdown -l");
}
public void actionPerformed(ActionEvent ae){
String str = aegetActionCommand();
if(strequals("OK")){
try{
if(shutgetText()=="Shutdown (F1)"){
Shutdown();
}
if(restartgetText()=="Restart (F2)"){
Restart();
}
if(logoffgetText()=="Logoff (F3)"){
Logoff();
}
}catch(IOException e){}
}
}
public static void main(String[] args) throws IOException{
new WindowOperations();
}
}
以上就是关于java 怎样关闭jwindow全部的内容,包括:java 怎样关闭jwindow、cmd编译运行java程序后我想关闭cmd但程序还得运行怎么做、JAVA中怎么关闭一个窗口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)