gpt4 book ai didi

java - 为什么try-catch不允许java小程序中的其他元素出现?

转载 作者:行者123 更新时间:2023-12-01 22:15:08 25 4
gpt4 key购买 nike

我正在填充我的 Java 小程序。我正在尝试让 serverSocket 与我的 java 小程序一起使用。一旦我添加了 try-catch,小程序中的所有其他元素都不会显示在小程序中。当我注释掉 try-catch block 时,其他元素又回来了。为什么会出现这种情况?这是代码:

import java.applet.Applet;
import java.awt.Button;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;


public class App extends Applet {

TextField input;
TextField output;

public void init()
{

setSize(500,500);

}

public void start ()
{

this.input = new TextField(40);
this.output = new TextField(40);
this.output.setEditable(false);
Button b = new Button("send");

this.add(b);
this.add(input);
this.add(output);

try{

ServerSocket server = new ServerSocket(8000);
Socket socket = server.accept();
DataInputStream inputFromClient = new DataInputStream(socket.getInputStream());
final DataOutputStream outputToClient = new DataOutputStream(socket.getOutputStream());

b.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent arg0)
{



}


});



}catch(IOException e){

e.printStackTrace();

}


}

}

最佳答案

Socket socket = server.accept(); 是一种阻塞方法,意味着在建立某个连接之前,它将等待,因此 start 永远不会返回,所以用户界面不会更新

将套接字连接代码卸载到单独的线程。

请注意,根据本地计算机的安全设置,可能无法从小程序内建立这种连接。

此外,AWT 在大约 15 年前就被 Swing 取代,您可能会发现使用 Swing API 或 JavaFX 更容易,因为有更多基于社区的支持

关于java - 为什么try-catch不允许java小程序中的其他元素出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31236873/

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