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); } }

Rispondi quotando