gpt4 book ai didi

java套接字和线程问题

转载 作者:行者123 更新时间:2023-11-30 09:55:07 26 4
gpt4 key购买 nike

我正在用 Java 做一些套接字编程。我在这里创建了一个按钮(创建服务器)..当我点击它时,它会启动服务器...但我想在启动服务器后将按钮名称更改为(停止服务器)...所以我做了这个..但是当我按下启动服务器时,它启动并且按钮名称保持不变......

当客户端连接到它时,它会更改名称以停止服务器...

告诉我这段代码有什么问题??

这是我的部分代码...

public void actionPerformed(ActionEvent ex)
{
if(ex.getActionCommand() == "CreateServer")
{
bt1.setText("Stop Server");
bt2.setEnabled(false);
b5.setText("Server Started On Port " + tf2.getText());
System.out.println("Server started 1");
create(Integer.parseInt(tf2.getText())); //my func. to create server
System.out.println("Server started 2");
}
}

和我的 create() fucn。包含一些套接字和线程...所以告诉我问题是什么...

最佳答案

您可能正在 AWT 线程中运行您的服务器。因此,这意味着该线程无法重新绘制您的框架并且按钮标题不会更改。

因此为您的服务器创建一个新线程(此代码在您的按钮 Action 监听器中):

Runnable serverRunnable = new Runnable()
{
public void run()
{
create(Integer.parseInt(tf2.getText())); //my func. to create server
}
};
Thread serverThread = new Thread(serverRunnable);
serverThread.start();

执行这段代码后,AWT 线程启动了一个新的线程,而不必自己运行服务器,可以继续重新绘制所需的框架或组件。

关于java套接字和线程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2981352/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com