如何强制将文本放置在提供的方向参数上

时间:2015-03-26 17:02:05

标签: java swing jframe jpanel jlabel

为什么当我更改JLabel对象的orientation参数时,它不遵守它。 在以下代码行中:

    headerLabel = new JLabel("headerLabel", JLabel.LEFT);
    statusLabel = new JLabel("statusLabel", JLabel.RIGHT);
    jPanel.add(headerLabel, BorderLayout.EAST);
    jPanel.add(headerLabel, BorderLayout.WEST);

无论方向参数顺序如何(EAST; WEST; LEFT; RIGHT),结果总是如此," headerLabel"在左边和" statusLabel"在右边。

如何强制将文本放置在提供的方向参数上。

private void prepareGUI() {
    // TODO Auto-generated method stub
    mainFrame = new JFrame("Swing Example");
    mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    mainFrame.setSize(400, 400);

    JPanel jPanel = new JPanel();
    headerLabel = new JLabel("headerLabel", JLabel.LEFT);
    statusLabel = new JLabel("statusLabel", JLabel.RIGHT);
    jPanel.add(headerLabel, BorderLayout.EAST);
    jPanel.add(headerLabel, BorderLayout.WEST);
    jPanel.add(statusLabel);

    mainFrame.add(jPanel);

    //mainFrame.getContentPane().add(headerLabel, BorderLayout.NORTH);
    //mainFrame.getContentPane().add(statusLabel, BorderLayout.EAST);
    mainFrame.setUndecorated(false);
    //mainFrame.add(headerLabel);
    //mainFrame.add(statusLabel);
    mainFrame.setVisible(true);
}

1 个答案:

答案 0 :(得分:0)

JPanel使用其无参数构造函数的默认布局是FlowLayout。如果要使用该LayoutManager

布局其组件,请将jPanel的布局设置为BorderLayout
JPanel jPanel = new JPanel(new BorderLayout());
//use the BorderLayout parameters to add components to jPanel