0

我想用许多 JLabels 填充 JPanel GridLayout。但是,我希望每个 LabelText 具有相同的像素宽度。标签都有两个部分:

VarA:       123.4
VarB:       Green
DateMax  12/03/13

我可以使用等宽字体来完成此操作,因为我只需要计算总字符数。

有没有办法对 TrueType 字体做同样的事情?

4

1 回答 1

0

关于如何做到这一点的一个小例子:

public class AdjustedLabel extends JPanel {

    public AdjustedLabel(String leftText, String rightText) {
        JLabel leftLabel = new JLabel(leftText, SwingConstants.LEFT);
        JLabel rightLabel = new JLabel(rightText, SwingConstants.RIGHT);
        setLayout(new BorderLayout());
        add(leftLabel, BorderLayout.WEST);
        add(rightLabel, BorderLayout.EAST);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("label testing");
        JPanel panel = new JPanel(new GridLayout(3, 1));
        panel.add(new AdjustedLabel("VarA:", "123.4"));
        panel.add(new AdjustedLabel("VarB:", "Green"));
        panel.add(new AdjustedLabel("DateMax:", "12/03/13"));
        frame.setContentPane(panel);
        frame.setSize(200, 100);
        frame.setVisible(true);
    }
}

编辑:一些调整,使组件更惯用。

于 2013-10-10T13:41:56.117 回答