特别是Java的新手,我有一个简单的样式/设计/语法问题: 在创建JFrame时:
JFrame frame = new JFrame(NAME);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
是否需要EXIT_ON_CLOSE之前的JFrame?是不是已经使用frame.setDefault指定了??
最后一个问题是使用JFrame而不是Frame有什么特别的好处吗? 优点&缺点
提前谢谢!
答案 0 :(得分:3)
是否需要EXIT_ON_CLOSE之前的JFrame?不是吗 使用frame.setDefault ...?
指定
必要的原因JFrame.EXIT_ON_CLOSE是常量(类级变量)。 设置时,使用系统退出方法退出应用程序。
如果你像这样进行静态导入,你可以省略它。
静态导入示例:
import javax.swing.JFrame;
import static javax.swing.JFrame.EXIT_ON_CLOSE;
public class Test{
public static void main(String args[]) throws CloneNotSupportedException {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
最后一个问题是使用JFrame有什么特别的好处 而不是框架?优点&缺点
JFrame来自swing,而Frame更加过时了。您有更多信息Swing vs AWT
答案 1 :(得分:2)
EXIT_ON_CLOSE是属于JFrame类的静态变量。通过指定JFrame.EXIT_ON_CLOSE来使用它是非常标准的,但如果真的困扰你,你也可以导入它。
Math类具有类似的静态变量。
JFrame是Swing,Frame是AWT。这是开始谷歌搜索的好地方。
答案 2 :(得分:2)
是否需要EXIT_ON_CLOSE之前的JFrame?不是吗 使用frame.setDefault ...?
指定
是的,因为您需要在关闭Application框架时提供所需的正确退出行为:有四个这样的常量可用:
DO_NOTHING_ON_CLOSE
:不要做任何事;如果您需要程序来处理关闭操作并在窗口关闭事件上做一些事情,请使用它;你可以在这里使用Window Listeners
HIDE_ON_CLOSE
:在调用任何已注册的WindowListener
对象后自动隐藏框架。因此,如果需要,请将WindowListener注册到JFrame
。
DISPOSE_ON_CLOSE
:在调用任何已注册的WindowListener
对象后自动隐藏和处置框架。
EXIT_ON_CLOSE
:使用系统退出方法退出应用程序。仅在应用程序中使用它。 所有这些常量都在WindowCOnstants
接口中定义。但是,您想知道默认值设置为默认关闭操作:它是HIDE_ON_CLOSE
<强>参考:强>
答案 3 :(得分:1)
JFrame.EXIT_ON_CLOSE是用于控制窗口关闭操作的常量
与System.exit(0);
相同“准则”可能会这样:
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
switch(defaultCloseOperation) {
...
case EXIT_ON_CLOSE:
// This needs to match the checkExit call in
// setDefaultCloseOperation
System.exit(0);
break;
}
}
}
答案 4 :(得分:-1)
是否需要EXIT_ON_CLOSE之前的JFrame?是不是已经使用frame.setDefault指定了??
是的,这是必要的,因为常量EXIT_ON_CLOSE
在JFrame
类中。您不需要它的唯一时间是使用静态导入或扩展JFrame
。
最后一个问题是使用JFrame而不是Frame有什么特别的好处吗?优点&amp;缺点
JFrame
是Swing库的一部分,Frame是AWT
库的一部分。通常,Swing比Awt