我想从一个.txt文件中输出文本,这个文本将会有越来越多的文本,但是如果我这样做而不修改JLabel的大小,那么文本就会熄灭屏幕,是否有可能以某种方式自动增加一个JLabel,同时以某种方式检测需要增加多少以填充所有文本?还是有没有其他的文本持有人不能编辑,但会满足这种需求?自动增加JLabel
回答
您可以制作任何Swing组件Document不可编辑,因此您可以自由选择。选择可以很好包装在JScrollPane中的东西,如上面提到的JList或JTextArea,是一个不错的选择。
如果您有长文本,请使用文本区。 不建议自动增加组件长度。因为屏幕上其他组件的对齐可能会受到影响。
对于这些类型的情况,我们依靠滚动条。
因此。使用TextArea,为它们设置一个preferredSize。然后使用ScollBar,如果文本 超出首选大小。
另一个解决方案:确定组件的最小和最大尺寸。默认显示 将以最小尺寸显示文字。如果文字增加,则增加文字区域的大小。 停止增加尺寸直到达到最大尺寸。如果显示最大值,则显示滚动条。 请记住,您可能必须重写JTextArea或其UIComponent(首选)。
的投票[setXXSize - do not,ever](http://stackoverflow.com/a/ 7229519/203657)JTextArea的api可以根据行/列设置其首选大小,如果需要,合适的LayoutManager将处理任何进一步的微调 – kleopatra
@kleopatra我同意。我想我只提到了preferredSize(大胆)。但是,如果您使用自定义ComponentUI,则可以非常好地控制组件,并且可以明智地使用这些值。 ComponentUI处理渲染组件的主要责任。请参阅http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/ComponentUI。html – veritas
非常感谢你的veritas – Ted
- 1. 自动增加ID
- 2. 自动缩写JLabel
- 3. UndoableEditListener该 - 增加的JLabel和的JTextPane
- 4. 如何检索自动递增的ID值到JLabel
- 5. 自动增加PK递增irregularry
- 6. 增加Mysql自动递增值
- 7. Mysql自动增量增加2和1?
- 8. 自动增加员工ID
- 9. CSS自动增加值
- 10. Django自动增加值
- 11. 自动增加xml属性
- 12. 自动增加数组数
- 13. GetElementsById中自动增加ID
- 14. codeigniter自动增加foreignkey
- 15. 自动增加开始于
- 16. 自动增加宏扩展
- 17. 自动增加的领域
- 18. Feathersjs自动增加钩子
- 19. div高度自动增加
- 20. GridView高度自动增加
- 21. 如何自动更改Jlabel
- 22. 增加滚动条高度自动
- 23. MySQL更新增加(不自动增加)列值
- 24. SQLite:自动增加一个ID增加2
- 25. 如何增加“主键”自动增加数量?
- 26. 自动递增
- 27. 随着令牌输入列表增加,自举轮播自动增加高度
- 28. 设置并检索从mysql到java的自动增量值(在jlabel中设置)
- 29. 如何在NetBeans中手动添加jlabel到jlabel数组?
- 30. 产品自动化(详情)增加
使用[** JList **](http://docs.oracle.com/javase/tutorial/uiswing/components/list.html)来代替lables。 – Azad
1-使用不可编辑的JTextArea 2-将文本包装在html – MadProgrammer
中,取决于您的确切要求/上下文 - 在描述问题时(以及它应该如何表现)应该是精确的,最好使用SSCCE – kleopatra