2010-10-01 12 views

Odpowiedz

18
JPanel panel = new JPanel(); 
panel.setLayout(new BorderLayout()); //give your JPanel a BorderLayout 

JTextArea text = new JTextArea(); 
JScrollPane scroll = new JScrollPane(text); //place the JTextArea in a scroll pane 
panel.add(scroll, BorderLayout.CENTER); //add the JScrollPane to the panel 
// CENTER will use up all available space 

Zobacz http://download.oracle.com/javase/6/docs/api/javax/swing/JScrollPane.html lub http://download.oracle.com/javase/tutorial/uiswing/components/scrollpane.html Więcej szczegółów na JScrollPane

+0

wspaniała odpowiedź dzięki! –

6

Umieść JTextArea wewnątrz JScrollPane, a miejsce, które do JPanel zz układem, który ustala rozmiar. Przykładem z GridBagLayout, na przykład mógłby wyglądać następująco:

JPanel panel = new JPanel(); 
panel.setLayout(new GridBagLayout()); 

JScrollPane scrollpane = new JScrollPane(); 
GridBagConstraints cons = new GridBagContraints(); 
cons.weightx = 1.0; 
cons.weighty = 1.0; 
panel.add(scrollPane, cons); 

JTextArea textArea = new JTextArea(); 
scrollPane.add(textArea); 

To tylko szorstki szkic, ale powinien zilustrować, jak to zrobić.

+0

Prawie nie głosowałem na to z powodu użycia GridBagLayout dla tak prostej potrzeby. –

+3

Nigdy nie używaj GridBagLayout! Nigdy! –

+2

Dzięki długiej i pełnej irytacji z każdym innym menedżerem layoutu w Swing, teraz używam GridBagLayout prawie wyłącznie. To artefakt mojej osobistej historii, a nie rekomendacji. Proszę użyć dowolnego menedżera układu, który pasuje do twoich potrzeb. W tym przypadku uważam, że dokładna specyfikacja wag wyraźnie wskazuje, że panel przewijania pochłania wszystkie zmiany w rozmiarze. Ale na pewno nie warto używać skomplikowanego menedżera układu do prostego układu. – Zoe

Powiązane problemy