Mam problem z przewijaniem JTextArea. Nie jestem pewien, w jaki sposób można zepsuć JScrollPane, ale wydaje się, że mam i po prostu nie widzę. To wszystko jest częścią większego projektu, ale poniższy kod ilustruje sposób tworzenia JTextArea i dodawania go do JScrollPane. Po wpisaniu poza krawędź obszaru tekstu pasek przewijania nie jest wyświetlany. Ustawienie pionowego paska przewijania tak, aby zawsze wyświetlał pasek przewijania, który nic nie robi.Paski przewijania na JTextArea w JScrollPane nie działają
import javax.swing.*;
import java.awt.*;
public class TextAreaTest extends JFrame{
public TextAreaTest() {
super("Text Area Scroller");
Container c = getContentPane();
JTextArea textarea = new JTextArea();
textarea.setPreferredSize(new Dimension(300, 50));
textarea.setLineWrap(true);
textarea.setText("xx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\n");
JScrollPane scroller = new JScrollPane(textarea);
c.add(scroller, BorderLayout.CENTER);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]){
TextAreaTest instance = new TextAreaTest();
instance.setVisible(true);
}
}
Próbowałem ustawienie tekst obszar tekstu lub wierszy i kolumn w konstruktorze, z których żaden nie pracował. Wchodzi mi do głowy. Jakieś pomysły?
Dziękujemy! Z jakiegoś powodu myślałem, że już próbowałem i nie udało mi się tego zrobić, ale to działało. Twoje zdrowie. – Robert
+1 - albo całkowicie usuń 'setPreferredSize' do obszaru tekstowego, albo jeśli chcesz ustawić rozmiar w ten sposób, ustaw go na' scrollPane' –
Używam edytora Swing Layout w NetBeans 7.3. Aby to działało, musiałem ustawić właściwość PreferredSize dla JTextArea na wartość null. Kiedy to zrobiłem, magicznie pojawił się pionowy pasek przewijania. –