【问题标题】:How to append text to JTextArea from main function int java?如何从主函数 int java 将文本附加到 JTextArea?
【发布时间】:2015-12-09 11:17:16
【问题描述】:

我想在主函数中将一些文本附加到JTextArea,但它不起作用。

我正在附加来自init()main() 的文本,但JTextArea 上只有来自init() 的文本。

public class Test extends JApplet{

    private static JPanel panel = new JPanel();
    private static JTextArea textArea = new JTextArea();

    public void init() {   

        panel.setLayout(null); 
        panel.setPreferredSize(new Dimension(400,300)); 
        this.add(panel);

        textArea.setBounds(20, 150, 350, 100);
        panel.add(textArea);

        setTextArea("BBBB");
    }

    public static void setTextArea(String text){
        textArea.append(text);
    }
    public static void main(String args[]) {        
        setTextArea("AAAAA");
    }   

}

我只使用“BBBB”来获取 textarea。

更新

我还有一个功能。我从init() 调用它,文本正在附加,一切都很好。但是如果我写一行setTextArea("some text");clientSocket = new Socket(address, port); 行之后,文本不会追加。

 private static void connetToServer() throws IOException, InterruptedException {
        try {
            //address = args.length > 0 ? args[0] : "localhost";
            //port = args.length > 1 ? Integer.parseInt(args[1]) : 4444;
            //System.out.println(address + ' ' + port);
            setTextArea("some text");
            clientSocket = new Socket(address, port);
            output = new PrintStream(clientSocket.getOutputStream());
            input = new DataInputStream(clientSocket.getInputStream());
            inputLine = new DataInputStream(new BufferedInputStream(System.in));
        } 
        catch( IOException e){
            setTextArea("Can't connet to server");
            System.exit(0);
        }
     }

【问题讨论】:

    标签: java swing jtextarea


    【解决方案1】:

    因为init 方法被用作appletsservlets 的入口点,所以您将“BBBB”附加到您的文本区域。

    您的类extends JAppletjava.applet.Applet 的子类,这意味着它将使用init 而不是main(而是用作应用程序的入口点)。

    【讨论】:

    • 谢谢,但我又添加了一个问题。可以问一下吗?
    • 您的clientSocket 是否已正确初始化?您是否收到错误/异常阻止您的代码继续?您在代码示例中注释掉了参数。很有可能它无法为clientSocket 创建一个新的Socket
    • 不,客户端正确连接到服务器。我从 JTextFields 获取参数,它是 cmets 中的旧版本。
    • 如果您在调试模式下逐行执行代码,当您移过clientSocket = new Socket(address, port); 行时会发生什么?它会出错吗?除了实际上没有到达该行之外,应该没有任何理由不附加文本。
    • 是的,你很紧张。我在线程“AWT-EventQueue-2”java.security.AccessControlException:访问被拒绝(“java.net.SocketPermission”“127.0.0.1:4444”“connect,resolve”)中收到这样的异常异常
    猜你喜欢
    • 1970-01-01
    • 2023-04-08
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多