JTextField大小

时间:2011-06-22 09:52:06

标签: java swing size jtextfield gridbaglayout

我有一个像这样的JPanel:

GridBagConstraints constPanelInfo = new GridBagConstraints();
    panelInfo = new JPanel(new GridBagLayout());
    JLabel sensor1 = new JLabel("Sensor: ");
    constPanelInfo.gridx = 0;
    constPanelInfo.gridy = 0;
    constPanelInfo.weightx = 0.0;
    constPanelInfo.fill = GridBagConstraints.NONE;
    panelInfo.add(sensor1, constPanelInfo);
    constPanelInfo.gridx = 1;
    constPanelInfo.gridy = 0;
    constPanelInfo.weightx = 1.0;
    constPanelInfo.fill = GridBagConstraints.HORIZONTAL;
    campoSensor.setPreferredSize(new Dimension(100, campoSensor.getPreferredSize().height));
    panelInfo.add(campoSensor, constPanelInfo);

其中campoSensor定义为:

private JTextField campoSensor = new JTextField();

...但是JTextField的重量不能达到我想要的100 px:它保持与写入setPreferredSize方法之前相同的大小。这有什么想法吗?

2 个答案:

答案 0 :(得分:0)

尝试设置constPanelInfo.iPadX=100;,而不是设置首选尺寸。

答案 1 :(得分:0)

希望这就是你要找的......设置

constPanelInfo.weightx = 0;
传感器的

应保持在指定的100px。即如果所有权重都为零,则所有额外空间都出现在单元格的网格和左右边缘之间。

请记住,如果设定了重量并且因为

constPanelInfo.fill = GridBagConstraints.HORIZONTAL;

无论首选大小如何,campoSensor都将填充整个细胞宽度。 此宽度可能取决于面板所在的JFrame的大小。