Java Swing元素大小调整和定位问题

时间:2011-05-20 13:26:24

标签: java swing layout

我正在创建一个Java swing应用程序,我很难很好地定位元素。

如何让输入框和组合框说30px高?另外,我如何才能使所有文本的右边缘垂直排列,所有输入框的左边缘垂直排列?

我有一个主要的JPanel,即BoxLayout.Y_AXIS,然后我在主JPanel上有6个JPanel。这6个JPanels设置为BorderLayout,你可以看到我使用WEST作为输入字段的JLabels和EAST。

以下是我如何创建位于主面板顶部的第一个面板的片段。

private JPanel getProtocolPanel() {

    protocolNumber.setBorder(BorderFactory.createLineBorder(Color.GREEN));
    protocolNumberInput.setBorder(BorderFactory.createLineBorder(Color.CYAN));
    protocolNumber.setVerticalAlignment(SwingConstants.TOP);

    protocolPanel = new JPanel();
    protocolPanel.setLayout(new BorderLayout());

    protocolPanel.setBorder(BorderFactory.createLineBorder(Color.RED));
    protocolPanel.add(protocolNumber, BorderLayout.WEST);
    protocolPanel.add(protocolNumberInput, BorderLayout.EAST);

    return protocolPanel;
}

enter image description here

让我知道是否有更好的方法来进行此类布局。 感谢。

1 个答案:

答案 0 :(得分:5)

您要么必须将布局嵌套在彼此内部,要么使用更复杂的布局(Spring,GridBag,Mig)或两者来获得所需的效果。