我迷失在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來實現此目的。 –