我有一个名为 Version3 的选项卡式 Jframe,它实现了 Runnable。其中我在不同的选项卡中有 3 个 JPanel。在这些选项卡旁边我有一个文本区域。 我希望我的 GUI 能够监听消息并将其显示在文本区域中。我试图让我的 GUI Version3 成为一个始终监听的服务器,以防它收到来自客户端的任何消息。
java.awt.EventQueue.invokeLater(new Runnable(){
public void run(){
Version3 v=new Version3();
v.setVisible(true);
v.listenTo();
}
});
我将 GUI Version3 设置为服务器,但是当我运行程序时,GUI 的组件在连接到客户端之前不会显示。我只有一个空白的 GUI 窗口,没有任何组件。有什么想法如何在没有连接客户端的情况下在 GUI 上显示所有组件吗?
最佳答案
I made my GUI Version3 a server but when i run the program the components of the GUI doesn't show until it's connected to client.I just have a blank GUI window with no components. Any ideas how to display all my components on my GUI without a client connected?
我认为您很可能阻止了 Event Dispatching Thread (又名 EDT)当您的类(class)尝试连接到客户端时。这就是为什么它在有连接时有效,但在没有连接时则无效的原因。 EDT 是一个单独的特殊线程,Swing 组件在其中进行创建和更新。如果您在 EDT 中运行繁重的任务,那么您的 GUI 将卡住,Swing 组件将无法工作(甚至无法显示)。
查看 Concurrency in Swing跟踪了解 Swing 中的并发性。
题外话:请考虑在以后的问题中添加您的代码。正如 @alex2410 建议的那样,如果包含 SSCCE 会更好。展示您的问题。
关于java - 在没有连接客户端的情况下,如何在 GUI 服务器中显示组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20213967/