Полосы прокрутки на 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("xxnxxnxxnxxnxxnxxnxxnxxnxxnxxnxxnxxnxxnxxn");
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);
}
}
Я попытался установить текстовую область текст или строки и столбцы в конструкторе, ни один из которых не работал. У меня голова идет кругом. Есть идеи?
3 ответов
остальные правы насчет размера. В стороне рассмотрите возможность запуска в потоке отправки событий ( EDT):
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new TextAreaTest().setVisible(true);
}
});
}
используйте этот код
import javax.swing.*;
public class ScrollingTextArea
{
JFrame f;
JTextArea ta;
JScrollPane scrolltxt;
public ScrollingTextArea()
{
// TODO Auto-generated constructor stub
f=new JFrame();
f.setLayout(null);
f.setVisible(true);
f.setSize(500,500);
ta=new JTextArea();
ta.setBounds(5,5,100,200);
scrolltxt=new JScrollPane(ta);
scrolltxt.setBounds(3,3,400,400);
f.add(scrolltxt);
}
public static void main(String[] args)
{
new ScrollingTextArea();
}
}