Java网格约束异常
我遇到一个异常:Java网格约束异常,java,exception,gridbaglayout,Java,Exception,Gridbaglayout,我遇到一个异常:java.lang.IllegalArgumentException:无法添加到布局:当我尝试执行此代码时,约束必须是GridBagConstraint: //creating the right splitpane JSplitPane sp = new JSplitPane(JSplitPane.VERTICAL_SPLIT); GridBagLayout paneLayout = new GridBagLayout(); sp.setLayo
java.lang.IllegalArgumentException:无法添加到布局:当我尝试执行此代码时,约束必须是GridBagConstraint
:
//creating the right splitpane
JSplitPane sp = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
GridBagLayout paneLayout = new GridBagLayout();
sp.setLayout(paneLayout);
sp.setContinuousLayout(true);
sp.setDividerLocation(100);
//setting constraints
c = this.setConstraints(GridBagConstraints.ABOVE_BASELINE_TRAILING, GridBagConstraints.NORTH, 1, 1, 2, 2, .5, .5, new Insets(1,1,1,1), 5, 5);
paneLayout.setConstraints(treeView, c);
c = this.setConstraints(GridBagConstraints.BELOW_BASELINE_TRAILING, GridBagConstraints.SOUTH, 0, 0, 2, 2, .5, .5, new Insets(1,1,1,1), 5, 5);
paneLayout.setConstraints(info, c);
//adding components
sp.setTopComponent(treeView); // Line with the error
sp.setBottomComponent(info);
其中setConstraints
执行以下操作:
private GridBagConstraints setConstraints(int fill, int anchor, int gheight, int gwidth, int x, int y, double d, double e, Insets insets, int padx, int pady){
GridBagConstraints c = new GridBagConstraints();
c.fill = fill;
c.anchor = anchor;
c.gridheight = gheight;
c.gridwidth = gwidth;
c.gridx = x;
c.gridy = y;
c.weightx = d;
c.weighty = e;
c.insets = insets;
c.ipadx = padx;
c.ipady = pady;
return c;
}
我想我要么错过了一些简单的东西,要么有一个更大的bug,我对此无能为力。你说呢
MirroredFateJSplitPane有自己的布局管理器——您不应该将其更改为GridBagLayout。如果要在窗格中使用GridBagLayout,请创建一个JPanel以放入JSplitPane,并将该面板的布局设置为GridBagLayout。然后将面板放在JSplitPane中,并将控件放在面板中