使用MigLayout时如何使用...自动打破JLabel的文本?

时间:2013-11-16 12:43:19

标签: java swing jlabel layout-manager miglayout

例如,当文本足够短时,JLabel通常会显示其文本:

  

Hello world!

但是当它变得太长时会自动将其与“......”分开:

  

你好女士们和绅士......

使用MigLayout时有没有办法做到这一点?在其他布局中,这是默认行为,但显然不在MigLayout ...

enter image description here

2 个答案:

答案 0 :(得分:2)

我不完全确定我理解你的意思是“休息”:我假设你想要显示省略号(表示标签更长)而不是简单地删除文本。

  • 当标签的大小小于文本要求时,显示省略号
  • 标签的minSize与其首选的
  • 大致相同
  • 默认情况下,MigLayout不会将组件的大小设置为低于其最小值

因此,您必须通过使用组件约束来覆盖组件的min来明确允许管理器的大小小于min:

content.add(new JLabel("we are looooong and getting longer by the minute"), "wmin 0");

(也可能在列约束上,没有检查)

答案 1 :(得分:1)

将其放在<html>标记内,并使用<br />添加新行

Mylabel.setText("<html><div style=\"text-align: center;\">"+
                    "First Line <br />"+
                    "Second Line</html>"
                );

这看起来像

                 ----------------------
                 |    First Line      |
                 |    Second Line     | 
                 ----------------------