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

How to move JSplitPane's divider when I double-clicked it?

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

所以我将 MouseListener 添加到 JSplitPane,但它没有用。

只有当我双击其他没有分隔线的 JSplitPane 的 space 时它才有效。

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

这是我失败的代码

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

(当我使用 MouseListener 时效果相同)

您的代码不起作用的原因是 JSplitPane 本身没有收到点击事件。

相反,JSplitPane 的 UI class 会。

此代码有效:

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);
                }
            }
        });
    }