当组件超出文本区域时启用ScrollPane

时间:2016-05-03 14:40:26

标签: java swing jscrollpane jtextarea

在其他任何事情之前,可能会有一些人已经问过这个问题。但是,我确信我不能谷歌。无论如何,我有一个scrollPane,它有一个textArea的viewPortView。我的问题是,当我在textArea中插入大量组件时,我想显示我的滚动条。我该怎么做?我不知道,我不是Javax Swing的专家。 代码是这样的:

textArea = new JTextArea();
scrollPane = new JScrollPane();
   textArea.setBounds(0,50,520,550);
   textArea.setBackground(Color.DARK_GRAY);
   scrollPane.setBounds(textArea.getBounds());
   scrollPane.setViewportView(textArea);

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

  

我的问题是,当我在textArea中插入大量组件时,我想显示我的滚动条。

文本区域显示文本,而不是组件。当您实际向文本区域添加文本时,滚动条将自动出现。

textArea.setBounds(0,50,520,550);

不要使用setBounds。 Swing旨在与布局管理器一起使用。特别是,只有使用布局管理器时,JScrollPane才能正常工作。

//textArea = new JTextArea();
textArea = new JTextArea(5, 20);

创建JtextArea时,请使用如上所述的代码。这将允许文本区域确定其自己的首选大小。一旦添加了超过5行的文本,就会出现滚动条。

阅读How to Use Text Areas上Swing教程中的部分,了解更多信息和工作示例。保留所有Swing基础知识的教程链接。

答案 1 :(得分:2)

仅供参考,

如果文本区域中有多行,则默认情况下滚动条会滚动到文本区域的末尾。要保持文本区域中的行包装并滚动到文本区域的顶部,以下代码将有助于

{{1}}