Java 如何移动JSplitPane';当我双击它时,它是什么?
如果双击分隔符,我想将JSplitPane的分隔符移到中心 因此,我将MouseListener添加到JSplitPane中,但它不起作用 只有当我双击其他JSplitPane的空格而不使用分隔符时,它才起作用 有什么办法可以让我工作吗 这是我失败的代码Java 如何移动JSplitPane';当我双击它时,它是什么?,java,swing,jsplitpane,Java,Swing,Jsplitpane,如果双击分隔符,我想将JSplitPane的分隔符移到中心 因此,我将MouseListener添加到JSplitPane中,但它不起作用 只有当我双击其他JSplitPane的空格而不使用分隔符时,它才起作用 有什么办法可以让我工作吗 这是我失败的代码 splitPane.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { //super
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);
}
}
});
}
代码不起作用的原因是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);
}
}
});
}
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参见:如何创建。使用“编辑”链接改进您的问题-不要通过评论添加更多信息。谢谢换句话说:试着写一段最少的代码来说明问题。通常这样做会告诉您代码的错误。寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参见:如何创建。使用“编辑”链接改进您的问题-不要通过评论添加更多信息。谢谢换句话说:试着写一段最少的代码来说明问题。通常这样做会告诉您代码的错误@최혜정 不客气。:)如果对你有帮助的话,请考虑接受这个答案,这样可能会有同样问题的人也知道它是有效的。哦,我忘了。我当然愿意接受你的回答D@최혜정 不客气。:)如果对你有帮助的话,请考虑接受这个答案,这样可能会有同样问题的人也知道它是有效的。哦,我忘了。我当然愿意接受你的回答D