2014-10-22 47 views
1

我正在爲我的高中班級編寫一個小型項目,但現在我遇到了一些問題,現在我正在使用框架。我試圖找到在java中安排一個面板的內容最簡單,最有效的方式7 (注:這意味着SpringUtilities不是一個選項)在面板中排列項目

因爲我想它的每個項目的安排有你的名字在頂部的同一行下方的名稱框

和我到目前爲止的代碼輸入,然後有3個按鈕的選項

private static void userInterface(){ 
     //Declare and assign variables 
     final String[] options = {"Lvl 1", "Lvl 2", "Lvl 3"}; 
     int optionsAmt = options.length; 
     //Create the panel used to make the user interface 
     JPanel panel = new JPanel(new SpringLayout()); 

     //Create the name box 
     JTextField tf = new JTextField(10); 
     JLabel l = new JLabel("Name: "); 
     l.setLabelFor(tf); 
     panel.add(l); 
     panel.add(tf); 

     //Create 3 buttons with corresponding values of String options 
     for(int a = 0; a < optionsAmt; a++){ 
      JButton b = new JButton(options[a]); 
      panel.add(new JLabel()); 
      panel.add(b); 
     } 

     //Layout the panel 


    } 

    public static void main(String[] args) { 

     JFrame f = new JFrame(); 
     f.pack(); 
     f.setTitle("Number Game"); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     f.setVisible(true); 


    } 
} 

回答

4

「易」是相對的例如,你可以做類似......

GridLayout

public class TestPane extends JPanel { 

    public TestPane() { 
     setLayout(new GridLayout(2, 1)); 

     JPanel fieldPane = new JPanel(); 
     fieldPane.add(new JTextField(10)); 
     add(fieldPane); 

     JPanel buttonPane = new JPanel(); 
     buttonPane.add(new JButton("1")); 
     buttonPane.add(new JButton("2")); 
     buttonPane.add(new JButton("3")); 
     add(buttonPane); 

    } 

} 

或類似的東西...

GridBagLayout

public class TestPane extends JPanel { 

    public TestPane() { 
     setLayout(new GridBagLayout()); 
     GridBagConstraints gbc = new GridBagConstraints(); 
     gbc.gridwidth = 3; 
     gbc.gridx = 0; 
     gbc.gridy = 0; 

     add(new JTextField(10), gbc); 

     gbc.gridwidth = 1; 
     gbc.gridy = 1; 

     add(new JButton("1"), gbc); 
     gbc.gridx++; 
     add(new JButton("2"), gbc); 
     gbc.gridx++; 
     add(new JButton("3"), gbc); 

    } 

} 

兩者都是容易的,都做的工作,但你會用會在你很大程度上取決於想實現...

看看Laying Out Components Within a Container瞭解更多詳情

+0

很好的一個 – 2014-10-22 03:14:04

+0

謝謝你的幫助 – 2014-10-24 02:13:14

+0

很高興幫助... – MadProgrammer 2014-10-24 02:14:45