首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当组件超出文本区域内时启用ScrollPane

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

Stack Overflow用户
提问于 2016-05-03 14:40:26
回答 2查看 78关注 0票数 0

在任何事情之前,可能有一些人已经问过这个问题。然而,我确信我不能搜索它。总之,我有一个scrollPane,它有一个viewPortView of textArea。我的问题是,当我在textArea中插入许多组件时,我想显示我的滚动窗格。我该怎么做?我不知道,我也不是Javax Swing的专家。代码是这样的:

代码语言:javascript
复制
textArea = new JTextArea();
scrollPane = new JScrollPane();
   textArea.setBounds(0,50,520,550);
   textArea.setBackground(Color.DARK_GRAY);
   scrollPane.setBounds(textArea.getBounds());
   scrollPane.setViewportView(textArea);

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-03 14:55:46

我的问题是,当我在textArea中插入许多组件时,我想显示我的滚动窗格。

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

代码语言:javascript
复制
textArea.setBounds(0,50,520,550);

不要使用setBounds。Swing被设计用于布局管理器。特别是,只有在使用布局管理器时,JScrollPane才能正常工作。

代码语言:javascript
复制
//textArea = new JTextArea();
textArea = new JTextArea(5, 20);

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

有关更多信息和工作示例,请参阅有关如何使用文本区域的Swing教程中的部分。为所有的Swing基础知识保留一个教程的链接。

票数 2
EN

Stack Overflow用户

发布于 2016-05-04 01:25:05

只是为了了解情况,

如果文本区域中有多行,则滚动条默认滚动到文本区域的末尾。若要将文本区域中的行包装并滚动到文本区域的顶部,下面的代码将有所帮助。

代码语言:javascript
复制
    textArea .setWrapStyleWord(true);
    textArea .setLineWrap(true);
    DefaultCaret caret = (DefaultCaret) textArea .getCaret();
    caret.setUpdatePolicy(DefaultCaret.NEVER_UPDATE);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37007222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档