0
我正在做一個簡單的GUI,其中GridBag佈局管理器下有多個JPanel。問題是我想通過在GridBag佈局中的子JPanel下移動來添加拖放功能,但無論出於什麼原因,似乎setLocation()都不起作用。我懷疑佈局經理正在干涉這一點。我不想完全取出佈局管理器,因爲我需要它來幫助組織元素,那麼是否有任何方法來設置一些特定的元素來忽略佈局管理器?設置特定的JPanel子項來忽略佈局管理器
我正在做一個簡單的GUI,其中GridBag佈局管理器下有多個JPanel。問題是我想通過在GridBag佈局中的子JPanel下移動來添加拖放功能,但無論出於什麼原因,似乎setLocation()都不起作用。我懷疑佈局經理正在干涉這一點。我不想完全取出佈局管理器,因爲我需要它來幫助組織元素,那麼是否有任何方法來設置一些特定的元素來忽略佈局管理器?設置特定的JPanel子項來忽略佈局管理器
只需添加一個新JPanel具有透明背景的(如果不是在默認情況下使用setOpaque(false)
透明)到您的網格包佈局,其佈局設置爲null:
myPanel.setLayout(null);
而且,設置其大小爲適當的值,因爲默認情況下,null佈局縮小爲無任何座標。
myPanel.setMinSize(int x, int y);
任何添加到疊加jPanel的組件都不受佈局的影響,並且可以自由移動。
你有沒有考慮過展示面板的JList呢?實現拖放列表條目重新排序相對容易。 –
佈局管理器用於面板,組件遵循佈局管理器的規則。如果您希望組件可拖動,那麼您需要使用空佈局將組件添加到單獨的面板。 – camickr