我无法让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);
}
}
我已尝试在构造函数中设置文本区域文本或行和列,两者都不起作用。它正在努力。任何想法?
答案 0 :(得分:26)
设置滚动窗格的首选大小,而不是文本区域。
答案 1 :(得分:1)
其他人的规模是正确的。另外,请考虑从Event Dispatch Thread(EDT)开始:
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new TextAreaTest().setVisible(true);
}
});
}
答案 2 :(得分:-1)
使用此代码
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();
}
}