JButton 中的自动换行
JButtons 中是否可以实现文本自动换行?我在运行时创建的动态按钮很少。我想在按钮上添加自动换行功能,以便我可以看到按钮上更好的测试。可以这样做吗?
Is it possible to achieve automatic word wrap of texts in JButtons? I am having few dynamic buttons which I create on runtime. I want to put word wrap feature on the buttons so that I can see some better test on buttons. Is it possible to do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
此示例使用 Java 内置的 CSS 渲染功能来完成确定何时进行换行的“繁重工作”。它使用
JLabel
,但相同的原则适用于任何将呈现 HTML 的组件。FixedWidthText.java
屏幕截图
160px
200px
50%
This example uses Java's inbuilt CSS rendering abilities to to do the 'heavy lifting' of determining when to do a line break. It uses a
JLabel
, but the same principles apply to any component that will render HTML.FixedWidthText.java
Screen shots
160px
200px
50%
使用 HTML...
Use HTML...
最简单的方法是修改另一个支持自动换行的组件,使其充当按钮。我创建了一个简单的类,它操纵 JTextArea 充当按钮。
BtnState 只是一个带有常量 NORMAL、HOVERED、CLICKED 的枚举。
大部分代码只是用于使 JTextArea 看起来像 JButton,并且工作得很好。一个缺点是您失去了通过 ButtonModel 修改它的能力,但对于大多数应用程序来说这已经足够了。
The easiest thing to do is to modify another Component that supports word wrap so that it acts as a Button. I made a simple class which manipulates JTextArea to act as Button.
BtnState is simply an enum with the Constants NORMAL, HOVERED, CLICKED
Most of the code is just used to make the JTextArea look like a JButton and it works quite fine. One drawback is that you loose the ability of modifying it via ButtonModels, but for the most applications this will be enough.