[英]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.