Salve,
devo visualizzare su un Jpanel (nel codice con nome visualizzaImmagine) un immagine.
Il path dell'immagine lo ricavo attraverso un JFileChooser attraverso l'azione del pulsante caricaImmagine.
Il mio problema è che non mi visualizza l'immagine (infatti il metodo drawImage mi restituisce false).
Questo è il codice:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
public class GestioneImmagini extends javax.swing.JFrame {
private static final long serialVersionUID = 1L;
{
//Set Look & Feel
try {
javax.swing.UIManager.setLookAndFeel("com.sun.java .swing.plaf.windows.WindowsLookAndFeel");
} catch(Exception e) {
e.printStackTrace();
}
}
private JButton CaricaImmagine;
static Graphics g;
private static JPanel visualizzaImmagine;
/**
* Auto-generated main method to display this JFrame
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
GestioneImmagini inst = new GestioneImmagini();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
});
}
public GestioneImmagini() {
super();
initGUI();
}
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_O N_CLOSE);
getContentPane().setLayout(null);
{
CaricaImmagine = new JButton();
getContentPane().add(CaricaImmagine);
CaricaImmagine.setText("Carica Immagine");
CaricaImmagine.setBounds(17, 21, 200, 23);
CaricaImmagine.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
try {
CaricaImmagineActionPerformed(evt);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
{
visualizzaImmagine = new JPanel();
getContentPane().add(visualizzaImmagine);
visualizzaImmagine.setBounds(305, 107, 100, 100);
}
pack();
this.setSize(500, 500);
} catch (Exception e) {
e.printStackTrace();
}
}
private void CaricaImmagineActionPerformed(ActionEvent evt) {
String url=null;
JFileChooser chooser = new JFileChooser();
int returnVal=chooser.showOpenDialog(GestioneImmagini. this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();
url=file.getAbsolutePath();
}else{
System.out.println("Errore nel caricamento del file");
}
System.out.println(""+url);
Image img = Toolkit.getDefaultToolkit().getImage(url);
g = visualizzaImmagine.getGraphics();
g.drawImage(img, 0, 0,this);
Boolean tmp=g.drawImage(img, 0, 0,this);
System.out.println(""+tmp);
visualizzaImmagine.repaint();
}
}
P.s. l'immagine la devo visualizzare per forza in un Jpanel e non in una JLabel
Grazie in anticipo