O método addMouseWheelListener() pertence à classe Component, que por sua vez é ancestral de JScrollPane, então você pode usar o método com JScrollPane também. Porém, JScrollPane já possui processamento padrão para a roldana do mouse, então você pode querer desligar esse processamento através de JScrollPane.setWheelScrollingEnabled(false).
Você já verificou se o método está efetivamente sendo executado? Vejo que você está usando isAltDown(), você quer fazer zoom apenas quando o usuário segurar a tecla Alt?
Não faça ImageIO.read() toda vez, certamente vai ficar lento. Carregue a imagem uma única vez (por exemplo, quando o usuário pedir para abri-la) num objeto BufferedImage e use esse objeto para fazer o zoom.
Creio que o trecho " imageLabel.setText(null) " pode ser removido, provavelmente imageLabel já não possui texto algum;
A rotina showImageZoom() está sendo chamada a partir do MouseWheelListener? Caso positivo, como o MouseWhellListener é chamado a partir da Thread de processamento de eventos do Swing, as chamadas a " imageLabel.repaint() " e " imageLabel.validate() " não são necessárias;
O " return " no fim da rotina também pode ser retirado;
Tentar usar Graphics.drawImage() em vez de getScaledInstance() para redimensionar a imagem. Há um exemplo dessa técnica no link abaixo:
Grato em ter sido útil Uma última recomendação: inclua a tag “[RESOLVIDO]” no título deste tópico, para que os demais participantes do fórum possam realizar consultas com mais facilidade.