我想用多个JLabel填充JPanel GridLayout。但是,我希望每个LabelText具有相同的宽度(以像素为单位)。标签都有两部分:
VarA: 123.4
VarB: Green
DateMax 12/03/13
我可以使用Monospaced字体完成此操作,因为我只需要计算总字符数。
有没有办法对TrueType字体做同样的事情?
答案 0 :(得分: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);
}
}
编辑:进行一些调整以使组件更具惯用性。