JTextArea的滚动条

时间:2014-10-24 10:39:00

标签: java swing jscrollpane jtextarea

我正在尝试为文本区域创建滚动条。但是,滚动条没有出现。任何人都可以给我任何提示。这是创建滚动条所在的面板的方法。

displayCD = new JPanel();
displayCD.setSize(new Dimension(500, 500));

jta = new JTextArea();
jta.setMaximumSize(new Dimension(500, 500));
scrollPane = new JScrollPane();
scrollPane.getViewport().add(jta);

displayCD.add(scrollPane);

3 个答案:

答案 0 :(得分:0)

您需要将textArea提供给scrollpane的构造函数。有关详细信息,请查看此链接:http://docs.oracle.com/javase/tutorial/uiswing/components/scrollpane.html

JScrollPane scrollPane = new JScrollPane(textArea);

答案 1 :(得分:0)

结帐How to Use Scroll Panes。以下是他们的例子:

//In a container that uses a BorderLayout:
textArea = new JTextArea(5, 30);
...
JScrollPane scrollPane = new JScrollPane(textArea);
...
setPreferredSize(new Dimension(450, 110));
...
add(scrollPane, BorderLayout.CENTER);

尝试传递JTextArea构造函数中的JScrollPane,最重要的是,尝试为其提供有意义的大小提示(行和列)。
将此应用于您的特定情况:

jta = new JTextArea(5, 30);
scrollPane = new JScrollPane(jta);

displayCD = new JPanel();    
displayCD.add(scrollPane);

如果文字内容超出默认尺寸,则会出现滚动条。要始终显示条形,请尝试使用setHorizontalScrollBarPolicysetVerticalScrollBarPolicy方法或其他JScrollPane构造函数。

关于文本区域的大小:

  

除非您明确设置滚动窗格的首选大小,否则滚动窗格会根据其九个组件的首选大小(视口,如果存在,两个滚动条,行和列标题)计算它,和四个角落)。最大的因素,也是大多数程序员关心的因素,是用于显示客户端的视口的大小。

答案 2 :(得分:0)

看这个例子。 JScrollPane.VERTICAL_SCROLLBAR_​​ALWAYS属性。

import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class Main {
  public static void main(String[] argv) throws Exception {
    JTextArea textArea = new JTextArea();
    JScrollPane pane = new JScrollPane(textArea);
    pane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    pane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

  }
}

参考:http://www.java2s.com/Code/JavaAPI/javax.swing/JScrollPaneVERTICALSCROLLBARALWAYS.htm