我想从另一个类(主类)创建一个Jframe,然后我想只在主方法中没有错误时才显示Jframe。否则我想创建&通过传递相同的jframe来显示对话框。 我忘了线程概念在任何地方给我解决方案,我尝试下面的代码,打印“abcde”但不显示框架程序完成。
注意:JFrame od ErrorDialog中没有主要方法。它们只是自定义容器。
public class Start{
public static Main mf=null;
public static void main(String args[]){
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
mf = new Main();
}
});
try {
// Some extra code
System.out.println("abcde"); // this is print and then program complete
mf.setVisible(true); // this line will not run
} catch (Exception e) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ErrorDialog(mf, true).setVisible(true);;
}
});
}
}
}
答案 0 :(得分:1)
试试我的建议吧......
只需使用invokeAndWait()
方法,即可使用invokeLater()
方法。
因为invokeLater()
方法会创建NullpointerException
。
但invokeAndWait()
必须在try-catch
块内。
try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
mf = new Main();
}
});
} catch (Exception e) {
System.out.println(e);
}