JScrollPane中JTextArea上的滚动条不起作用

我无法让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); } } 

我已经尝试在构造函数中设置文本区域文本或行和列,两者都不起作用。 它正在努力。任何想法?

设置滚动窗格的首选大小而不是文本区域。

其他人的规模是正确的。 另外,请考虑从Event Dispatch Thread( 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(); } 

}