双击时如何移动 JSplitPane 的分隔线?



如果我双击分隔符,我想将 JSplitPane 的分隔符移动到居中。

所以我将MouseListener添加到JSplitPane,但它不起作用。

仅当我在没有分隔符的情况下双击其他 JSplitPane 的空间时,它才有效。

有什么方法可以随心所欲地工作吗?

这是我失败的代码

splitPane.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//super.mouseClicked(e);
splitPane.setDividerLocation(0.5);
}
});

(当我使用鼠标侦听器时,它的工作原理相同(

代码不起作用的原因是 JSplitPane 本身不会接收单击事件。

相反,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);
}
}
});
}

相关内容

  • 没有找到相关文章

最新更新