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

Cat*_*ish 2 java layout swing

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

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

我有一个主要的JPanel,即BoxLayout.Y_AXIS,然后我在主JPanel上有6个JPanel.这6个JPanels设置为BorderLayout的,正如你可以看到我已经WEST用于中的JLabel和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;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如果有更好的方法来进行此类布局,请告诉我.谢谢.

jzd*_*jzd 5

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

  • 我投票给'GridBagLayout`.一旦掌握了约束,就可以创建几乎任何东西. (2认同)