簡體   English   中英

雙擊時如何移動JSplitPane的分隔線?

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

如果雙擊分隔符,我想將JSplitPane的分隔符移到中心。

因此,我將MouseListener添加到了JSplitPane中,但是沒有用。

僅當我雙擊沒有分隔符的其他JSplitPane的空間時,它才起作用。

有什么需要的方法嗎?

這是我失敗的代碼

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

(當我使用MouseListener時,它的工作原理相同)

您的代碼不起作用的原因是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);
                }
            }
        });
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM