如果我双击分隔符,我想将JSplitPane的分隔符移动到中心。
所以我将MouseListener添加到JSplitPane但它没有用。
只有当我在没有分隔符的情况下双击其他JSplitPane的空间时,它才有效。
有没有办法按我的意愿工作?
这是我失败的代码
splitPane.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//super.mouseClicked(e);
splitPane.setDividerLocation(0.5);
}
});
(当我使用MouseListener时它的工作方式相同)
答案 0 :(得分:2)
您的代码不起作用的原因是JSplitPane本身不接收click事件。
相反,JSplitPane的UI类确实。
此代码有效:
JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, component1, component2);
SplitPaneUI spui = split.getUI();
if (spui instanceof BasicSplitPaneUI) {
((BasicSplitPaneUI) spui).getDivider().addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
if (arg0.getClickCount() == 2) {
split.setDividerLocation(0.5);
}
}
});
}