如何将 GUI 事件重定向到 system.in 或将 System.out 重定向到 GUI 组件



我创建了一个简单的命令行界面服务器应用程序,可以读取System.in以便进行操作。它接受简单的命令:

START启动 ServerSocket 并侦听客户端连接。

STOP ,向服务器正在关闭的所有客户端广播,并关闭服务器套接字。

ONLINEUSERS . 以查看哪个用户处于联机状态。

效果很好。然后,它需要它的 GUI 界面。

假设我Server带有main()的类来启动服务器进程(但仍然空闲,因为尚未输入START命令)和一个带有启动按钮(JButton)和日志文本区域(JTextArea)的普通ServerGUI

为了尽量减少耦合,是否可以设计一个程序:首先,用其Server.main()启动服务器;其次,启动ServerGUI;然后,当单击ServerGUI中的启动按钮时,它会自动向进程发送START命令并启动服务器?

有没有办法实现这一点?

似乎您的问题是试图找到一种方法将数据传输到 System 对象中,以便 System.in 监视器能够获得它。 也许有一种方法可以做到这一点,但这不是我会这样做的方式。

相反,我会使用 STart 按钮注册一个事件处理程序,并让它在服务器类上调用一个方法。

类似以下内容的内容将起作用。

startButton = new javax.swing.JButton();
startButton.addMouseListener(new java.awt.event.MouseAdapter() {
     public void mouseClicked(java.awt.event.MouseEvent evt) {
         Server.startSocketAndListen();
     }
});

相关内容

  • 没有找到相关文章

最新更新