滚动条不适用于我的JTextArea

时间:2014-11-28 12:41:54

标签: java swing jframe jscrollpane jtextarea

我写了一个基本的挥杆代码,其中我将JTextArea包裹到JScrollPane中。但是,即使文本区域内容超出可见JFrame区域,滚动条也不会显示。

代码如下 -

public class TestArea {
    private JTextArea area;
    private JScrollPane scroll;
    private JFrame frame;

    public TestArea(){
        frame = new JFrame("Testing");
        frame.setSize(new Dimension(200, 300));
        area = new JTextArea();
        area.setEditable(false);
        scroll = new JScrollPane(area);
        frame.getContentPane().add(scroll);
        area.setLayout(new BoxLayout(area, BoxLayout.Y_AXIS));
        area.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));        
        area.setBackground(Color.WHITE);        
        addMessage();

    }

    private void addMessage() {
        area.add(new JLabel("Can you see me..... can you see me"));
        for(int i=0; i<30; i++){
            area.add(new JLabel(Integer.toString(i)));
            System.out.println(Integer.toString(i));
            frame.setVisible(true);
        }       
    }

    public static void main(String[] args){
        new TestArea();
    }
}

使用BoxLayout的原因是我严格要求输出在y轴上对齐。以下是输出屏幕截图https://app.box.com/s/rgeyajgvk0ppude399my的链接 如您所见,滚动条没有出现。有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:3)

  • JTextArea不能成为JComponents的容器,在这种情况下是JLabel

  • JTextArea指定为纯文本


  • 使用JPanel作为JLabel数组的contianer而不是JTextArea

答案 1 :(得分:0)

  

我正在使用JLabel,因为我之间打算以不同的颜色显示字符串

然后你应该使用JTextPane。它支持您添加到文本窗格的每个文本字符串的属性(如粗体,字体,颜色)。

阅读文本组件功能的Swing教程中的部分以获取更多信息和示例。