我用 C 语言编写服务器,用 Java 编写客户端。我将 JavaFX 用于 GUI。一切正常,除了有时我在 textArea 被填充并在重置之前收到更多数据时出现异常(可能是并行线程的原因)。实际上有 3 种情况“随机”发生:
1)卡住/挂起并且没有抛出异常。
2)NullPointerException(关于行填充和内容边界[我的代码没有提到])。
3) IllegalArgumentException:宽度和高度都必须 >= 0。
4) 关于字符串文本边界的异常。
如果有帮助,这是代码:
if(textArea.getLength() > 500) // I tried with > 2000, similar situations occur
textArea.setText("");
command = textField.getText();
out.println(command); // out to socket
textField.setText("");
顺便说一句,这个 GUI 应该代表基本的 Linux shell,所以 textArea 有时应该能够接收大量数据(例如 netstat 命令)。谢谢!