Actuellement, je passe un emplacement de fichier de chaîne codé en dur à ma méthode objet qui utilise la chaîne de la méthode .getResources()
pour charger un fichier image. J'essaie maintenant de choisir une image en utilisant un bouton de chargement et de passer l'emplacement de fichier chargé comme une chaîne dans la méthode getResource()
. J'utilise la méthode filename.getAbsolutePath()
pour récupérer l'emplacement du fichier puis en passant la variable filename
dans la méthode de l'objet, mais cela me donne l'erreur suivante - Exception dans le fil "AWT-EventQueue-0" java.lang.NullPointerException.
La ligne de code qui indique l'erreur est la ligne .getResources
où l'image est chargée. Je vais poster le code ci-dessous pour mieux comprendre mon problème.Comment passer un emplacement de fichier en tant que paramètre en tant que chaîne?
btnLoad.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser fc = new JFileChooser();
if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
{
File loadImage = fc.getSelectedFile();
String filename = loadImage.getAbsolutePath();
filename = filename.replaceAll("\\\\", "\\\\\\\\");
picLocation = filename;
ImageSwing imageSwing = new ImageSwing(filename);
System.out.println(filename);
}
}
La sortie du nom de fichier est correcte mais ne passera toujours pas dans l'objet.
public class ImageSwing extends JFrame
{
public JLabel label;
public ImageSwing(String S){
super("Card Stunt"); //Window Title
setLayout(new FlowLayout()); //lookup grid layout
Icon flag = new ImageIcon(getClass().getResource(S));
label = new JLabel(flag);
label.setToolTipText(S);
setSize(1350, 800);
//setMinimumSize(new Dimension(1200, 760));
}//main
}
est le fichier dans votre environnement de classe? parce que vous appelez getClass(). getResource (S) cela va récupérer le fichier commençant par classpath + filename – sgpalit
Pouvez-vous mettre l'exception complète (y compris la trace de la pile)? Avez-vous essayé de passer par un débogueur et de voir ce qui est nul? –
Une autre astuce pour l'utilisation des noms de fichiers de chaîne est de toujours utiliser les barres obliques pour séparer les répertoires dans le chemin. Java va le trier. – redge