我有JPanel
个JLabels
需要一个接一个地放在一行:
但是当第一个JLabel
包含非常长的文本时,我希望它被截断,但显示整个JLabel
,如下所示:
我已为此尝试了BorderLayout
,但它使第二标签文字始终与JPanel
的右侧对齐,这不是我需要的。
您能否告知正确的方法来实现所需的布局?
答案 0 :(得分:2)
您可以使用水平BoxLayout
。
关键是要使第一个组件的最小尺寸(0,0);
Box box = Box.createHorizontalBox();
JLabel longLabel = new JLabel("this has lots fo text");
longLabel.setMinimumSize( new Dimension(0, 0) );
box.add(longLabel);
box.add(Box.createHorizontalStrut(5));
JLabel shortLabel = new JLabel("little text");
box.add(shortLabel);