我有一个问题:当我使用方法" setText(...)" (或"追加(...)")来自JTextArea(或JTextPane),它不起作用。我的控制台没有错误。这是我使用的代码:
public class ConsoleFrame extends JDialog {
private static final long serialVersionUID = 1L;
private final JTextArea output = new JTextArea();
public ConsoleFrame() {
this.setTitle("Console");
this.setSize(500, 376);
this.setModal(true);
this.setModalityType(ModalityType.APPLICATION_MODAL);
this.setLocationRelativeTo(null);
final Container content = this.getContentPane();
output.setLineWrap(true);
output.setWrapStyleWord(true);
output.setText("Test 1");
content.add(new JScrollPane(output), BorderLayout.CENTER);
this.setVisible(true);
output.setText(System.lineSeparator() + "Test 2");
System.out.println(output.getText()); // Outputs "Test 1 Test 2";
}
}
感谢您的帮助!
答案 0 :(得分:-1)
在setVisible之后,swing gui上的任何操作都必须在Event Dispatching Thread中进行。否则你会遇到严重的麻烦。