Java 如何创建一个固定的;“物理”;JLabel中的长度字符串

Java 如何创建一个固定的;“物理”;JLabel中的长度字符串,java,truetype,Java,Truetype,我想用许多JLabel填充JPanel GridLayout。但是,我希望每个LabelText具有相同的像素宽度。所有标签都有两个部分: VarA: 123.4 VarB: Green DateMax 12/03/13 我可以使用单间距字体来完成这项工作,因为我只需要计算字符总数 有没有办法对TrueType字体执行相同的操作?关于如何执行此操作的一个小示例: public class AdjustedLabel extends JPanel { publ

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

VarA:       123.4
VarB:       Green
DateMax  12/03/13
我可以使用单间距字体来完成这项工作,因为我只需要计算字符总数


有没有办法对TrueType字体执行相同的操作?

关于如何执行此操作的一个小示例:

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);
    }
}

编辑:进行一些调整,使组件更加习惯化。

我认为不可能左调整标签文本的一部分,右调整另一部分。但是您可以使用两个标签来实现它。为什么不构建自己的组件来实现这一点呢?这就完成了任务!我永远也想不到。