Полосы прокрутки на JTextArea в JScrollPane не работают

Я испытываю затруднения, заставляя JTextArea прокрутить. Я не уверен, как можно испортить JScrollPane, но я, кажется, имею, и я просто не вижу его. Это - вся часть большего проекта, но код ниже - то, как я создаю JTextArea и добавляю его к JScrollPane. Когда Вы вводите вне края текстовой области, полоса прокрутки не появляется. Установка вертикальной полосы прокрутки к всегда на дает полосу прокрутки, которая ничего не делает.

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

Я попытался установить текст текстовой области, или строки и столбцы, в конструкторе, ни одном из который работавший. Это выполняет в моей голове. Какие-либо идеи?

11
задан Robert 21 April 2010 в 22:33
поделиться

2 ответа

Установите предпочтительный размер области прокрутки, а не текстовой области.

27
ответ дан 3 December 2019 в 03:34
поделиться

Остальные правы о размере. Кроме того, рассмотрите возможность запуска в потоке отправки событий ( EDT ):

public static void main(String args[]) {
    EventQueue.invokeLater(new Runnable() {

        @Override
        public void run() {
            new TextAreaTest().setVisible(true);
        }
    });
}
1
ответ дан 3 December 2019 в 03:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: