带有可调整大小和固定大小标签的 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);