我正在为一个类设计一个项目,该类在到达GUI之前打开一系列GUI。每个组件独立运行,但是当我们尝试使用从服务器返回的消息来创建新的GUI时,它会创建窗口,但没有任何组件。任何想法?
例如。
我们有一个登录屏幕,然后将ID发送到服务器,该服务器向客户端返回可用白板列表,这很好。然后,当我们希望客户端在收到消息后创建GUI时,会出现一个标题正确的框,但没有任何组件存在。我早些时候在跳过可用的电路板并打开白板时,没有创建白板组件,但计算机认为它已经成功创建了白板。
我们尝试过这样的事情......
ChooseBoardGUI newChoose = new ChooseBoardGUI(out, availableBoards);
newChoose.setVisible(true);
newChoose.pack();
String numberOfBoard = in.readLine().substring(2);
WhiteboardGUI a = createWhiteboard(out, numberOfBoard);
关于为什么新的GUI会出现空白的任何想法?
感谢您的帮助
答案 0 :(得分:2)
可能出现的问题:
解决方案是:
顺便说一句:听起来好像你的GUI被构造成向用户抛出几个JFrame。如果是这样,请考虑重新设计您的代码,以便您的单独GUI面向创建JPanels,然后让您的程序显示一个主要稳定的JFrame,但通过CardLayout交换“ views ”,通常是JPanels 。
关于Swing Concurrency的一个很棒的教程:Lesson: Concurrency in Swing