Java Swing - Button不会改变宽度的大小

时间:2014-05-05 18:51:18

标签: java swing jpanel jbutton

我有一个使用FlowLayout的JPanel,以及一个垂直排列的Box。 我想要的是,将其他组件的宽度大小设置为按钮“删除列”。 我试图用线

来改变大小
removeColumnButton.setPreferredSize(new Dimension(130, 25));

但我只能改变高度的大小,而不能改变宽度。

下面是面板和代码的屏幕截图:

enter image description here

    JPanel eastPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 0));
    Box eastPanelBox = Box.createVerticalBox();
        addNewColumnButton = new JButton("Add New Column");
        addNewColumnButton.setAlignmentX(Box.CENTER_ALIGNMENT);
        eastPanelBox.add(addNewColumnButton);
        eastPanelBox.add(Box.createVerticalStrut(5));

        removeColumnButton = new JButton("Remove Column"); 
        removeColumnButton.setAlignmentX(Box.CENTER_ALIGNMENT);
        removeColumnButton.setPreferredSize(new Dimension(130, 25));
        eastPanelBox.add(removeColumnButton);
        eastPanelBox.add(Box.createVerticalStrut(5));

        columnField = new JTextField();
        columnField.setAlignmentX(Box.CENTER_ALIGNMENT);
        columnField.setPreferredSize(new Dimension(130, 25));
        eastPanelBox.add(columnField);
        eastPanelBox.add(Box.createVerticalStrut(5));

        columnListCB = new JComboBox(cBoxModel);
        columnListCB.setAlignmentX(Box.CENTER_ALIGNMENT);
        eastPanelBox.add(columnListCB); 
        eastPanelBox.add(Box.createVerticalStrut(5));

        calculateColumnButton = new JButton("Calculate Column");
        calculateColumnButton.setAlignmentX(Box.CENTER_ALIGNMENT);
        eastPanelBox.add(calculateColumnButton);
    eastPanel.add(eastPanelBox);

1 个答案:

答案 0 :(得分:3)

将GridLayout用于容纳组件列的容器。用

初始化它
int vGap = 5;
new GridLayout(0, 1, 0, vGap)

代表1列,可变行数。 vGap参数必须是一个int,表示组件之间的垂直间隙。