Я добавляю пользовательский слушатель колесика мыши в свою JPanel, потому что я реализую функцию масштабирования для этой панели, которая работает с Ctrl + колесико мыши. Также мой JPanel находится в JScrollpane. Моя проблема в том; когда я добавляю MouseWheelListener на панель, колесо мыши не работает для области прокрутки, даже если Ctrl не нажат. Я хочу чтобы; колесико мыши работает для масштабирования при нажатии ctrl, а если не нажато, оно должно работать для области прокрутки. Как я могу это сделать?
public class ZoomTest {
public static void main(String[] args) {
JPanel jZoomPanel = new JPanel();
jZoomPanel.setPreferredSize(new Dimension(300, 500));
jZoomPanel.addMouseWheelListener(new MouseWheelListener() {
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
if(e.isControlDown()) {
// TODO implement zoom
}
}
});
JScrollPane jsc = new JScrollPane(jZoomPanel);
JFrame jDemoFrame = new JFrame();
jDemoFrame.getContentPane().add(jsc);
jDemoFrame.setSize(300, 300);
jDemoFrame.setVisible(true);
}
}