Ответ 1
Установите предпочтительный размер области прокрутки, а не текстовую область.
У меня возникают проблемы с прокруткой 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);
}
}
Я попытался установить текст текстовой области или строки и столбцы в конструкторе, ни один из которых не работал. Это делает мою голову. Любые идеи?
Установите предпочтительный размер области прокрутки, а не текстовую область.
Другие правы относительно размера. В качестве альтернативы рассмотрим возможность запуска в разделе "Диспетчер событий" (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();
}
}