setText(...)表单可见时不工作

时间:2014-12-04 20:42:53

标签: java append jtextarea jdialog settext

我有一个问题:当我使用方法" 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";
    }

}

感谢您的帮助!

1 个答案:

答案 0 :(得分:-1)

在setVisible之后,swing gui上的任何操作都必须在Event Dispatching Thread中进行。否则你会遇到严重的麻烦。