我迷失在Swing布局的恶梦:(我要揭露我的问题,但我正在寻找建议,以及明确的解决方案Swing布局问题
我的问题。我想设计一种形式是这样的:
private void initComponents() {
buttonGroup1 = new javax.swing.ButtonGroup();
buttonGroup2 = new javax.swing.ButtonGroup();
jPanel1 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jPanel3 = new javax.swing.JPanel();
jPanel4 = new javax.swing.JPanel();
jRadioButton1 = new javax.swing.JRadioButton();
jRadioButton2 = new javax.swing.JRadioButton();
jRadioButton3 = new javax.swing.JRadioButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setMinimumSize(new java.awt.Dimension(200, 200));
jPanel1.setMinimumSize(new java.awt.Dimension(400, 44));
jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1, javax.swing.BoxLayout.Y_AXIS));
jPanel2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 255, 255)));
jPanel2.setMaximumSize(new java.awt.Dimension(11111111, 2147483647));
jPanel2.setLayout(new javax.swing.BoxLayout(jPanel2, javax.swing.BoxLayout.X_AXIS));
jTextField1.setFont(new java.awt.Font("Lucida Grande", 0, 48)); // NOI18N
jTextField1.setText("jTextField1");
jTextField1.setAlignmentY(0.0F);
jTextField1.setMaximumSize(new java.awt.Dimension(150, 2147483647));
jTextField1.setPreferredSize(new java.awt.Dimension(100, 42));
jPanel2.add(jTextField1);
jTextField2.setFont(new java.awt.Font("Lucida Grande", 0, 8)); // NOI18N
jTextField2.setText("jTextField2");
jTextField2.setAlignmentY(0.0F);
jTextField2.setMaximumSize(new java.awt.Dimension(150, 2147483647));
jTextField2.setPreferredSize(new java.awt.Dimension(100, 28));
jTextField2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField2ActionPerformed(evt);
}
});
jPanel2.add(jTextField2);
jPanel1.add(jPanel2);
jPanel3.setForeground(new java.awt.Color(255, 51, 51));
jPanel3.setLayout(new javax.swing.BoxLayout(jPanel3, javax.swing.BoxLayout.LINE_AXIS));
jPanel4.setLayout(new javax.swing.BoxLayout(jPanel4, javax.swing.BoxLayout.Y_AXIS));
jRadioButton1.setText("jRadioButton1");
jPanel4.add(jRadioButton1);
jRadioButton2.setText("jRadioButton2");
jPanel4.add(jRadioButton2);
jRadioButton3.setText("jRadioButton3");
jPanel4.add(jRadioButton3);
jPanel3.add(jPanel4);
jPanel1.add(jPanel3);
getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
pack();
}
东西我真的不明白的是:
而且我与Netbeans的生成代码挣扎当我更改jPanel3的布局时,ther是jPanel2的渲染更改!
有人可以给我一个howto的路径?
无论如何,有人会推荐MigLayout,并且'某人'碰巧是我的 – Tedil
+1。 :D –
“当我更改jPanel3的latout时,ther是jPanel2的渲染更改!” - 你如何改变jPanel3的布局?使用GUIBuilder还是手动?如果手动,请尝试使用guibuilder来实现此目的。 –