我有一個插入主內容窗格的組件,出於某種原因,它沒有填充該區域。GridBagLayout不填充區域
getInstance().add(internalPanel, LayoutFactory.newFactory().setX(1).setY(1).
setWeightX(1).setWeightY(1).setFill(GridBagConstraints.BOTH));
我做了LayoutFactory
專門爲GridBagLayout
,它只是設置該屬性,返回的對象。
基本上,問題在於,當我將組件添加到內容窗格時,它不會填充專用於它的空間。這需要絕對最低限度,好像weightX
和weightY
設置爲0.我嘗試過setAnchor(GridBagConstraints.FIRST_LINE_START)
和setAnchor(GridBagConstraints.NORTHWEST)
。這個程序也沒有任何明顯的影響。另外,當我設置組件的邊框時,它只填充部分空間,所以它不是我添加到組件的問題。
值得注意的是,組件出現在空間的中心,並沒有跟隨錨點。從here,我想我的問題是weightX
和weightY
屬性。查看內容窗格的其他組件,權重將在每個組件上設置。
getInstance().add(MainFrame.buttons, LayoutFactory.newFactory().setX(0).setY(1).
setWeightY(1).setWeightX(0).setFill(GridBagConstraints.BOTH));
和
getInstance().add(panel, LayoutFactory.newFactory().setX(0).setY(0).setWidth(2)
.setWeightX(1).setWeightY(0).setAnchor(GridBagConstraints.FIRST_LINE_START)
.setFill(GridBagConstraints.NONE));
這當然是可能的事情錯了別的地方,但我不想淹沒這個帖子文字。如果你需要更多的信息來解決這個問題,我會很樂意提供它。希望這是有道理的。我一直在使用GridBagLayout
一段時間,我從來沒有遇到過這樣的事情。
Here is an image of what it looks like in the space it is supposed to be
編輯:發現了問題奠定了別的地方,因爲製作的小例子程序工作正常。由於我有點難受,I uploaded a full version of the program I am working on.不要擔心它的實際功能,我只關心工作負載面板沒有填滿空間。
考慮創建併發布[sscce](http://sscce.org),以便我們可以運行和操作您的代碼。我是否也正確理解你將權重設置爲0? –
是的。好吧,我想這個問題在別的地方,因爲當我做了一件事情,它完美地運作了。 [Available here。](http://pastebin.com/piAtgqmc) –
我認爲你需要進行更多的調試才能至少隔離錯誤,這樣如果你無法修復它,你就可以發佈你的SSCCE。 –