Allora, ho utilizzato gli stessi procedimenti che ho usato per un'applet e lì mi funzionano, ma se uso Image in un'applicazione normale, mi da errore qui: image = getImage (getDocumentBase(), string);

codice:
import java.awt.Image;
import java.awt.Graphics;
import java.awt.Dimension;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JFrame;
import javax.swing.JFileChooser;
import javax.swing.JButton;

public class Zoom extends JPanel
{
	private JButton pic;
	private JButton moreZoom;
	private JButton lessZoom;
	private Image image;
	private static JPanel controlPanel;
	private static JScrollPane scroll;
	
	public Zoom()
	{
		pic = new JButton ("Choose a pic");
		moreZoom = new JButton ("+");
		lessZoom = new JButton ("-");
		
		ButtonHandler handler = new ButtonHandler();
		pic.addActionListener (handler);
		moreZoom.addActionListener (handler);
		lessZoom.addActionListener (handler);
		
		controlPanel = new JPanel();
		controlPanel.add (pic);
		controlPanel.add (moreZoom);
		controlPanel.add (lessZoom);
		
		setPreferredSize (new Dimension (0, 0));
	}

	private class ButtonHandler implements ActionListener
	{
		public void actionPerformed (ActionEvent event)
		{
			if (event.getSource() == pic)
			{
				JFileChooser fileChooser = new JFileChooser();
				int result = fileChooser.showOpenDialog (Zoom.this);
				
				if (result == JFileChooser.APPROVE_OPTION)
				{
					String string = fileChooser.getSelectedFile().getPath();
					
					if (string != null)
					{
						image = getImage (getDocumentBase(), string);
						setPreferredSize (new Dimension (getWidth(), getHeight()));
						scroll.updateUI();
						repaint();
					}
				}
			}
		}
	}
	
	public void paintComponent (Graphics g)
	{
		super.paintComponent (g);
		
		if (image != null)
			g.drawImage (image, 0, 0, 300, 300, this);
	}
	
	public static void main (String[] args)
	{
		scroll = new JScrollPane(new Zoom());
		
		JFrame frame = new JFrame ("Zoom");
		frame.setSize (640, 480);
		frame.setLocationRelativeTo (null);
		frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
		
		frame.add (controlPanel, BorderLayout.NORTH);		
		frame.add (scroll);
		
		frame.setVisible (true);
	}
}