我想覆盖 Swing 中的鼠标滚轮侦听器,但前提是它们按下了 Control 按钮。侦听器将附加到 JPanel,这样当他们滚动滚轮时,它将滚动 JScrollPane,当他们按下控制按钮并滚动滚轮时,它将放大。 JScrollPane 的默认滚动(显然)在我覆盖它之前有效和我自己的听众。这是我的代码:
mainPanel.addMouseWheelListener(new MouseWheelListener(){
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
if ((e.getModifiers() & InputEvent.CTRL_MASK) == InputEvent.CTRL_MASK) {
int notches = e.getWheelRotation();
if (notches < 0) {
redrawOnZoom(true);
} else {
redrawOnZoom(false);
}
}
}
});
有没有办法说“如果鼠标自行滚动,则执行默认的 JScrollPane 滚动行为,但如果按下 Ctrl 则缩放”?