2013-08-26 41 views
1

元素這裏是我的代碼摘錄Allignment上的JFrame

JButton browse,upload; 
JPanel panel; 
JLabel username,path; 

final JTextField usernameText,pathText; 
final JTextArea statusText; 

    InputWindow() 
    { 
    username = new JLabel(); 
    username.setText("Username:"); 
    usernameText = new JTextField(15); 

    startDate = new JLabel(); 
    startDate.setText("Start Date :"); 
    startDateText = new JPasswordField(15); 

    path = new JLabel(); 
    path.setText("File Path :"); 
    pathText = new JPasswordField(15); 

    browse=new JButton("Browse.."); 
    upload=new JButton("Upload.."); 

    statusText = new JTextArea(35, 35); 
} 

我應該如何將它添加到JFrameJPanel看齊,在如下因素方面

  1. 行1 --->用戶名和的用戶名的文本
  2. 行2 --->的startDate和startDateText
  3. 行3 --->路徑,pathText,瀏覽和上傳
  4. 第4行---> statusText

我總是有時間對齊元素。請指導。

+0

GroupLayout對您的問題聽起來很好:http://docs.oracle.com/javase/tutorial/uiswing/layout/group.html – Maroun

+0

[您需要的全部內容 - 佈局經理的視覺指南](http:// docs .oracle.com/JavaSE的/教程/ uiswing /佈局/ visual.html)。通過結合這些幾乎所有的佈局是可能的。 – Dariusz

+0

不要回滾編輯,我只是​​在改進你的編輯。 – Maroun

回答

1

不是最好的方法,而是最簡單易懂的方法!

你想在一個行中的一個JTable的將所有的東西,例如:

JPanel row1 = new JPanel(); 

row1.add(username); 
row1.add(usernameText); 
... 

等等!這背後的原因是,如果您將它們放在JPanel上,則將它放在網格上更容易。如果你已經這樣做了,爲你的JFrame使用一個GridLayout。

JFrame frame = new JFrame(new GridLayout(4, 1)); 

「4」是行,「1」是列!現在,您只需將JPanel添加到JFrame中,如:

frame.add(row1); 
frame.add(row2); 

請記住,這不是最好的解決方案!也有辦法,你不需要太多的面板。例如GroupLayout將是最好的。如果你想看到所有的佈局,你可以這樣做here。我在這裏解釋說,因爲我認爲這是最容易理解的方式。