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 が押された場合はズームします」のような言い方はありますか?