java - 在没有连接客户端的情况下,如何在 GUI 服务器中显示组件?

标签 java swing user-interface jframe

我有一个名为 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/

相关文章:

linux - 直接打开到 Xserver 的套接字

java - 仅使用 for 循环组合两个不重复的 int 数组

java - 如何从 "search query"中提取 key ?

java - 如何在按下左键时检测鼠标移动?

css - Bootstrap 4.1 float 标签

java - GUI 不出现 Java

java - for 循环如何遍历数组?

java - 将 gradle 库导入 Eclipse

java - 无法从 Jar 加载图像

java - 将无边界摆窗置于前面