2012-04-03 362 views
1

這裏是我的問題:我試圖創建一個簡單的界面,我可以點擊幾個按鈕來調用differents函數,並在jlabel中顯示結果(總是文本)。我試圖讓2分隔部分(北/南或東/西)第一個區域將包含我所有按鈕的網格佈局或流佈局,第二個區域將顯示文本結果。Java Swing界面問題

這裏是我的聲明:

private static JButton b0 = new JButton("Creer Zone"); 
private static JButton b1 = new JButton("1"); 
private static JButton b2 = new JButton("2"); 
... 
private static JButton b11= new JButton("11"); 
private static JButton b12 = new JButton("12"); 
private static JButton b14 = new JButton("Help"); 
private static JFrame windows = new JFrame(); 
private static JPanel container = new JPanel(); 
private static JLabel res = new JLabel(); 

,這裏是我他們如何加入到JFrame(這是真的awfull看):

container.add(b0); 
container.add(b1); 
container.add(b2); 
... 
container.add(b12); 
container.add(b14); 
container.add(res); 

windows.setSize(450,500); 
windows.setContentPane(container); 
windows.setLocation(150 , 150); 
windows.setVisible(true); 

我試着聲明我的JPanel與一個網格佈局,borderlayout和改變位置(NSEW)和一個流程佈局,我總是結束與jlabel disapearing(這是壞的,因爲這個jlabel顯示我的功能的結果)

任何人都有一個簡單的方法來幫助我克服這個問題?非常感謝您採取任何時候

+0

你不加入的面板(這看起來像它包含了一切)到JFrame。可能是一個問題...此外,我可以重現這個問題,原因是我沒有爲框架定義佈局。我通常使用FlowLayout來處理這樣的事情。如果你需要澄清,只需詢問。 :) – fireshadow52 2012-04-03 14:24:25

+0

是否有一個特定的原因,你需要使用'JButton'來執行這些任務,正如你所提到的,或者其他任何東西都可以用來保存你的一天? :-) – 2012-04-03 15:15:42

回答

1
+0

感謝您的答案^ - ^但我已經花了一個小時在oracla java doc這就是爲什麼我問這裏。 GridBagLayout起初似乎是完美的解決方案,但我從未設法使其工作,所以我放棄了,並試圖有2個不同的部分,最終沒有任何工作。無論如何,我會再次嘗試這個GridBag,也許我可以帶來更好的東西,這次= D – WizLiz 2012-04-03 13:57:39

+0

*「我已經在oracla java文檔上花了一個小時了」*花費幾天的時間完成[Layla Out Components Within容器](http://docs.oracle.com/javase/tutorial/uiswing/layout/index.html)Java教程。簡單地使用它們作爲[嵌套佈局](http://stackoverflow.com/a/5630271/418556)來實現複雜的佈局。 – 2012-04-04 04:24:45

1

解釋另一種可能的解決方案爲你將來的事業是尋找到WindowsBuilder。它基本上簡化了佈局設計,只需簡單地拖放元素(Jframe,JtextField等),然後在後臺WindowsBuilder就會爲您編寫代碼。請注意,唯一需要真正添加/更改的是按鈕的命名約定,當然還有事件處理程序,但實際上這些都是任何設計人員想要控制的東西......希望這可以幫助您!

https://developers.google.com/java-dev-tools/wbpro/