添加可滚动的JTextArea(Java)

时间:2012-01-13 10:27:27

标签: java swing

我正在尝试向JTextArea添加滚动条。有人请告诉我下面的代码我做错了吗?

JFrame frame = new JFrame ("Test");
JTextArea textArea = new JTextArea ("Test");

JScrollPane scrollV = new JScrollPane (textArea);
JScrollPane scrollH = new JScrollPane (textArea);

scrollV.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scrollH.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
frame.setVisible (true);

提前谢谢。

编辑:我在下面用Adel Boutros的建议修改了代码。

    //FRAME
JFrame frame = new JFrame ("Test");
frame.setSize(500,500);
frame.setResizable(false);
//

//TEXT AREA
JTextArea textArea = new JTextArea("TEST");
textArea.setSize(400,400);    

    textArea.setLineWrap(true);
    textArea.setEditable(false);
    textArea.setVisible(true);

    JScrollPane scroll = new JScrollPane (textArea);
    scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
          scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

    frame.add(scroll);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

4 个答案:

答案 0 :(得分:38)

它不起作用,因为您没有将ScrollPane附加到JFrame。

此外,您不需要2个JScrollPanes:

JFrame frame = new JFrame ("Test");
JTextArea textArea = new JTextArea ("Test");

JScrollPane scroll = new JScrollPane (textArea, 
   JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

frame.add(scroll);
frame.setVisible (true);

答案 1 :(得分:5)

您不需要两个JScrollPanes

示例:

JTextArea ta = new JTextArea();
JScrollPane sp = new JScrollPane(ta);  

// Add the scroll pane into the content pane
JFrame f = new JFrame();
f.getContentPane().add(sp);

答案 2 :(得分:5)

滚动窗格是包含其他组件的容器。您无法将文本区域添加到两个不同的滚动窗格中。滚动窗格负责水平和垂直滚动条。

如果您从未将滚动窗格添加到框架中,它将永远不可见。

阅读swing tutorial about scroll panes

答案 3 :(得分:4)

  1. 打开设计视图
  2. 右键单击textArea
  3. 打开环绕选项
  4. 选择“... JScrollPane”。