2013-09-19 3 views
0

Я использую JScrollPane для размещения JTextArea для большой области текста. Я добавляю TextArea непосредственно в JFrame, он отлично работает. Но я добавляю его в scrollpane и добавляю scrollpane, я не вижу текстовое поле. Вот мой SSCCE:Не удается увидеть компоненты в JScrollPane

public class foo extends JFrame{ 
    //gui elements 
JTextArea chatMonitor = new JTextArea(); 

JScrollPane textPane = new JScrollPane(); 

ChatFrame(final String nickname, final String login, final String server, final String channel){ 
    setSize(500,500); 
    chatMonitor.setEditable(false); 
    chatMonitor.setVisible(true); 
    textPane.add(chatMonitor); 
    textPane.setAutoscrolls(true); 
    textPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
    textPane.setVisible(true); 
    add(textPane); 
} 
} 
+0

Короткий, да. Self Contained, нет. Правильный (компилятивный), №. Например, трудно сказать, считается ли это примером или нет. –

ответ

4

Предполагая textPane является JScrollPane, вы никогда не должны добавлять компоненты к нему.

Вместо этого используйте JScrollPane#setViewportView(Component)

JScrollPane состоит из целого ряда компонентов, которые работают вместе, чтобы предоставить вам функциональные возможности, необходимые, чтобы сделать компонент прокручивать ...

enter image description here

JScrollPane имеет JViewport, который используется для содержания компонента, который вы хотите прокрутить. Вам нужно «применить» компонент к представлению.

Подробнее см. How to use Scroll Panes

+0

Спасибо! Это очень помогает! – celloplayer

+0

Скроллинг - это исключение из правила, когда он поставляется с API-интерфейсом Swing, многие люди спотыкаются об этой проблеме;) – MadProgrammer

+0

Это сработало, поэтому я думаю, проблема решена. Еще раз спасибо! – celloplayer

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