java 怎样关闭jwindow

java 怎样关闭jwindow,第1张

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中怎么关闭一个窗口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9684248.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存