2017-10-04 134 views
-2

我需要揮杆建議有關佈局管理器這樣的形式:在java swing中創建表單最簡單的方法是什麼?

Label1 TextField1 
    Label1 TextField1 
    ButtonWideAsForm 

你能告訴我用什麼佈局?

+0

'BorderLayout'是我認爲最簡單的開始。用一些「黑客攻擊」你也可以使用 – XtremeBaumer

+0

學習GridBagLayout。這很難學,但工作得很好。這是值得學習的時間。 – VGR

+0

當我想要簡單的代碼時,我實際上傾向於使用'Box'。但其他佈局更好,請使用IDE和GUI佈局工具(如NetBeans和Matisse)進行研究。 – markspace

回答

1

這裏是剛剛GUI你描述它使用的GridBagConstraints方式的小例子:

import java.awt.GridBagConstraints; 
import java.awt.GridBagLayout; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 

public class TestGUI { 
    public static void main (String[] args) { 

     JFrame frame = new JFrame("Test"); 
     JPanel panel = new JPanel(new GridBagLayout()); 
     GridBagConstraints constraints = new GridBagConstraints(); 
     JLabel label1 = new JLabel("label1"); 
     JTextField text1 = new JTextField(); 
     JTextField text2 = new JTextField(); 
     JLabel label2 = new JLabel("label2"); 
     JButton button1 = new JButton("Button"); 

     text1.setColumns(10); 
     text2.setColumns(10); 

     constraints.gridx = 0; 
     constraints.gridy = 0; 
     panel.add(label1, constraints); 
     constraints.gridx = 1; 
     panel.add(text1, constraints); 
     constraints.gridx = 0; 
     constraints.gridy = 1; 
     panel.add(label2, constraints); 
     constraints.gridx = 1; 
     panel.add(text2, constraints); 
     constraints.gridx = 0; 
     constraints.gridy = 2; 
     constraints.gridwidth = 2; 
     constraints.fill = GridBagConstraints.BOTH; 
     panel.add(button1, constraints); 

     frame.add(panel); 
     frame.pack(); 
     frame.setVisible(true); 

    } 
} 

的的gridx和gridy相對簡單,自我解釋,他們只是說什麼行和列的成分應該是他們的關鍵是填充和網格寬度。這告訴佈局管理器定位按鈕以佔用2個單元格並填充行中的任何額外空間,從而實現全寬效果。

+0

感謝演示。是否有可能將標籤右側和文本域左側對齊? –

+0

是的,只需切換它們的'gridx'值。因此,'text1'應該有'gridx = 0','label1'應該有'gridx = 1','label2'和'text2'也是一樣的。 – Steampunkery

+0

@JaySmith當然可以。看看GridBagConstraints.anchor可能的值(在這種情況下,你只需要爲標籤的錨點設置GridBagConstraints.EAST,爲textfield的錨點設置GridBagConstraints.WEST) – Ansharja

相關問題