package imagezoom; import java.awt.Image; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSlider; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class ImagePane extends JScrollPane implements ChangeListener{ JPanel panel; JLabel label; ImageIcon icon; Image original; public ImagePane(String path) { try { original = ImageIO.read(new File(path)); icon=new ImageIcon(original); label=new JLabel(icon); panel=new JPanel(); panel.add(label); setViewportView(panel); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void stateChanged(ChangeEvent arg0) { JSlider slider = (JSlider)arg0.getSource(); int val = slider.getValue(); double scalef=val*1.0/100; int w = original.getWidth(null); int h = original.getHeight(null); Image newimg=original.getScaledInstance((int)(w*scalef),(int)(h*scalef),Image.SCALE_FAST); icon.setImage(newimg); panel.repaint(); } }