2011-01-27 99 views
0

這是我正在處理的代碼:http://pastie.org/1501054當你運行這個,出於某種原因,這兩個面板重疊。這是爲什麼?任何方式我可以解決它?兩個JPanels重疊?

作爲參數提供的ActionListener與該程序的這部分無關。

另外,我在哪裏可以找到一個很好的使用Eclipse的swing教程?

+3

在論壇中發佈代碼。包含main()方法,以便我們可以執行代碼。 – camickr 2011-01-27 01:17:42

+0

警告標籤是否應該位於標籤和文本字段之上? – 2011-01-27 02:25:41

回答

0

當你說你想要一個很好的Eclipse日誌教程時,你需要一個GUI構建器還是Swing教程? Swing是關於佈局的。一旦你明白了,那簡直就是小菜一碟。從流佈局開始。 如果您需要GUI構建器,請使用Netbeans。真不可思議!

至於重疊,它不是重疊,而是重寫。您只能在默認位置BorderLayout.CENTER中有一個面板。 如果你希望他們肩並肩,做getContentPane().setLayout(new FlowLayout()); 或者只是add(panel, BorderLayout.SOUTH)

0

雖然我不知道你想要的最終結果是什麼樣子,下面是我的一些建議什麼。

在你的警告面板添加到JFrame

warningPanel.add(warningLabel); 
contentPane.add(warningPanel); 
pack(); 

的contentPane是

JFrames默認由JFrame.getContentPane()返回的容器使用BorderLayout的片段,因此,

contentPane.add(<someComponent>)

相同

contentPane.add(<someComponent>, BorderLayout.CENTER)

您還添加mainPanel中以同樣的方式,你不能有相同的約束兩個組件,所以代替warningPanel設置爲BorderLayout.NORTH

contentPane.add(warningPanel, BorderLayout.NORTH)

而且還刪除通話在代碼片段中打包(),因爲您稍後在代碼中調用它。

希望這會有所幫助。


PS

至於GUI構建在Eclipse上Eclipse GUI Builder plugins可能利用這一先前的問題。我不能說在Eclipse中使用Swing的教程,但快速谷歌搜索挖起來this tutorial using the Eclipse Visual Editor project

0

我沒有看到重疊的窗格,當我運行你的代碼。我想知道你是否可以發佈你看到的效果截圖。

至於Eclipse中的教程。我建議在Eclipse中使用Windows Builder pro來構建Java GUI。這是一個優秀的產品(免費),並在網站上非常好的文檔。

0

是的,我看到警告標籤在研磨的第一行

那是因爲你沒有指定你的contentPane的佈局。 繼承人你如何解決它

contentPane.setLayout(new GridLayout(2,1)); 

加入這一行下

Container contentPane = getContentPane(); 

,我想你應該改變你的警告面板網格佈局1和1不是0和1,因爲你還有1行1列