我有一个嵌套的JSplitPane和底部分割窗格将只移动到左边。即使我把它移到左边,它也不会向右移动。
dataEntry=new JTabbedPane();
formformat=new JPanel();
dataEntry.addTab("Table Entry", tableScroll);
dataEntry.setMnemonicAt(0, KeyEvent.VK_1);
dataEntry.addTab("Form Entry", formformat);
dataEntry.setMnemonicAt(0, KeyEvent.VK_2);
utils=new JTabbedPane();
helphtml=new JEditorPane();
utils.addTab("Field Help", helphtml);
utils.setMnemonicAt(0, KeyEvent.VK_3);
microImage=new JLabel();
utils.addTab("Image Navigation", microImage);
utils.setMnemonicAt(0, KeyEvent.VK_4);
//leftright=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
// new JPanel().add(dataEntry), new JPanel().add(utils));
leftright=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
leftright.add(dataEntry);
leftright.add(utils);
leftright.setContinuousLayout(true);
leftright.setOneTouchExpandable(true);
try {
System.out.println("divx loc"+sa.getXDivider(username));
leftright.setDividerLocation(sa.getXDivider(username));
} catch (Exception e1) {
leftright.setDividerLocation(750);
}
createImage();
if(!imgurl.equals("NONE"))
topbot=new JSplitPane(JSplitPane.VERTICAL_SPLIT,imgpnl, leftright);
else
topbot=new JSplitPane(JSplitPane.VERTICAL_SPLIT,batchImage, leftright);
topbot.setOneTouchExpandable(true);
try {
System.out.println("divy loc"+sa.getYDivider(username));
topbot.setDividerLocation(sa.getYDivider(username));
} catch (Exception e) {
topbot.setDividerLocation(600);
}
注释掉的构造函数也不起作用,我试过了,两个方法都没有改变任何东西。
为什么水平分割窗格只向一个方向移动?垂直分割窗格没有问题,可以上下移动也没有问题。
拆分窗格的灵活性将受到其包含的组件的最小尺寸的限制。
从http://docs.oracle.com/javase/tutorial/uiswing/components/splitpane.html要使拆分窗格正常工作,通常需要设置拆分窗格中组件的最小大小,以及拆分窗格或其包含的组件的首选大小。选择应该设置的大小是一门艺术,需要了解如何确定拆分窗格的首选大小和分隔符位置。
#分配器