java JFrame“阻塞”显示()
我正在使用CHARVA(像Swing这样的课程),我有一个问题
因为charva与Swing非常相似,所以我认为Swing的解决方案与charva相同
我正在开发一个调用JFrame
扩展类get的应用程序
它的返回代码,并根据返回代码显示其他JFrame
窗口
就像:
public static void main() {
MainFrame mainframe=new MainFrame();
mainframe.show();
switch (mainframe.returncode) {
case "generalsetting": Frame1 frame1=new Frame1;
frame1.show();
break;
case "usersetting": Frame2 frame2=new Frame2;
frame2.show();
break;
等等,但当我这样做时:
mainframe.show();
程序不会等到主机关闭/隐藏,而是在“开关”上继续,返回代码未初始化并使程序崩溃
有一种方法可以实现“阻塞”show()
# 1 楼答案
如果要执行阻塞调用,可以尝试使用模式
JDialog
而不是JFrame
:只需在其构造函数中为modal
参数使用true
(请参见JDialog)虽然我不知道Charva,但是
JFrame.show()
是不推荐的,因为Java1.5(您应该使用setVisible(true)
)# 2 楼答案
对。您可以使
MainFrame
扩展JDialog
而不是JFrame
并使其成为模态: