我正在使用 CHARVA(类似 ncurses 的 Swing),但遇到了问题。
因为charva和Swing非常相似,所以我认为Swing的解决方案和charva是一样的。
我正在开发一个调用 JFrame
扩展类的应用程序,获取
它的返回代码并根据返回代码显示其他 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()
成为“阻塞”吗?
最佳答案
如果你想执行阻塞调用,你可以尝试使用模态 JDialog
而不是JFrame
:只需使用 true
对于 modal
其构造函数中的参数(请参阅 JDialog )
虽然我不认识Charva,但是JFrame.show()
自 Java 1.5 起已弃用(您应使用 setVisible(true)
代替)。
关于java - JFrame "blocking"显示(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22822696/