2017-11-11 250 views
3

我對Java Swing編程非常陌生,我遇到了一個小問題。Jpanel在設計時自由移動項目

當我使用Jframe和JPanels設計用戶界面時,JPanel不允許在我想要的地方(設計時)拖放一個項目。比方說,我向JPanel添加一個按鈕,然後按鈕卡在面板的中間,我不能將它拖到我想要的位置。當我直接將項目添加到JFrame時,不會發生這種情況。

我嘗試使用setBounds(int x, int y, int width, int height)方法來移動JPanel中的按鈕,但它不起作用。以下圖片將很好地描述我的問題。我想將JPanel中的按鈕拖動到左側,就像在JFrame中添加的按鈕一樣。

按鈕中的JPanel - 頂部和JFrame中 - 底:

https://i.stack.imgur.com/Nwq4i.png

有沒有辦法將其拖放到JPanel的自由掉落物品呢?

謝謝。

+4

不要使用IDE來生成您的GUI代碼。而是手動編寫GUI,以便您可以完全控制面板和每個面板使用的佈局管理器。例如默認情況下,一個JPanel使用一個FlowLayout,其中組件居中。如果您想要左側的按鈕,則更改佈局管理器以使用左對齊的組件的FlowLayout。 IDE是一個很好的工具,可以幫助您編譯,調試等,但如果您使用其他IDE,生成的代碼將不可移植。 – camickr

+0

謝謝你的答案@camickr。我明白你的觀點。我的問題是,即使我手動編寫代碼,Jpanels不會使用「以組件爲中心的FlowLayout」,正如您所提到的,使我的工作變得冗餘?如果不是這樣,我可以嘗試手動設計GUI。 –

+2

我已經說過,你可以改變佈局管理器使用左對齊的FlowLayout。閱讀FlowLayout API。 – camickr

回答

1

作爲答案發布,因爲我沒有足夠的評論聲望。我看到你正在使用eclipse來構建你的GUI。但是,Netbeans IDE允許您像前面提到的那樣設計界面。

手動創建GUI是一個好主意,如果你想加快這個過程,你需要使用IDE。如果你不限於Eclipse並且想要使用IDE,我會建議使用Netbeans。

+1

這不是問題的答案。另外Eclipse有它的[WindowBulder編輯器](https://www.eclipse.org/windowbuilder/)Gui設計器,所以不需要爲此而切換IDE。 – c0der

+0

*「因爲我沒有足夠的聲譽發表評論」*試圖規避SO的既定使用規則會吸引反對票,這反過來會延遲您發表評論的時間。不要嘗試遊戲系統。這是有道理的。 –

+0

感謝您的回覆,但我打算手動創建GUI。 –