带有可调整大小和固定大小标签的 Swing 布局
Swing layout with resizable and fixed-size labels
我有 JPanel
和 2 JLabels
需要一个接一个地排成一排:
但是当第一个 JLabel
包含很长的文本时,我希望它被截断,但显示整个第二个 JLabel
,如下所示:
我已经为此尝试了 BorderLayout
,但它使 Second Label Text 始终与 JPanel
的右侧对齐,这不完全是我需要
能否请您告知实现所需布局的正确方法?
您可以使用水平 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);
我有 JPanel
和 2 JLabels
需要一个接一个地排成一排:
但是当第一个 JLabel
包含很长的文本时,我希望它被截断,但显示整个第二个 JLabel
,如下所示:
我已经为此尝试了 BorderLayout
,但它使 Second Label Text 始终与 JPanel
的右侧对齐,这不完全是我需要
能否请您告知实现所需布局的正确方法?
您可以使用水平 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);