我有一个像这样的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方法之前相同的大小。这有什么想法吗?
答案 0 :(得分:0)
尝试设置constPanelInfo.iPadX=100;
,而不是设置首选尺寸。
答案 1 :(得分:0)
希望这就是你要找的......设置
constPanelInfo.weightx = 0;
传感器的应保持在指定的100px。即如果所有权重都为零,则所有额外空间都出现在单元格的网格和左右边缘之间。
请记住,如果设定了重量并且因为
constPanelInfo.fill = GridBagConstraints.HORIZONTAL;
无论首选大小如何,campoSensor都将填充整个细胞宽度。 此宽度可能取决于面板所在的JFrame的大小。