2014-12-04 2 views
0

У меня проблема: когда я использую метод «setText (...)» (или «append (...)») из JTextArea (или JTextPane), это не работает. У меня нет ошибок в консоли. Вот код, который я использую:setText (...) Не работает, когда форма видна

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"; 
    } 

} 

Благодарим за помощь!

+2

Странно, когда я запускаю ваш код, он отображает «Тест 1» в консоли, а затем, когда я закрываю ваше диалоговое окно, он печатает «{newline} Test 2» в терминале. Все работает как «ожидаемое». Не могли бы вы подробно рассказать о своей проблеме? Просто помните, что в модальном диалоге 'setVisible (true)' является блокирующим вызовом. –

+0

Может быть, если я удалю модальность? – Skyost

+0

Что вы пытаетесь достичь? Я havinh трудно понять, что ваша конечная цель. Объясняя, что, скорее всего, поможет нам в помощи –

ответ

-1

После того, как setVisible, любые операции с swing gui ДОЛЖНЫ произойти в Диспетчере событий. В противном случае у вас серьезные проблемы.

+0

Это не ответ, он едва квалифицируется как комментарий и вряд ли показывает актуальность для сообщения –

+0

Хорошо, у вас есть точка - я пропустил вызов setModal (true). Вы должны были разместить свой комментарий к вопросу в качестве решения ;-) – fjf2002

Смежные вопросы