Hallo an alle,
ich stehe vor folgendem Proglem.
Ich lade Bilder in meine JLable hinein, um sie dann später anzeigen zulassen.
Anfangs habe ich es mit einem absoluten Pfad probiert, was auch funktioniert hat. Später stellte sich dann heraus, dass wenn man das Spiel in ein JAR. exportiert und die JAR auf einem fremden Computer ausführt, dass die Bilder nicht mehr angezeigt werden.
Ich habe ein bisschen gegoogelt und bin dann auf den getClassLoader gestossen, der die lokalen Datein auf die Bilder durchsuchen kann.
Ich habe, dass dann folgendermaßen umgesetzt:
Mein Dialog in dem das Label aufgerufen wird:
In dieser Klasse passe ich die Bildgröße auf die JLabelgröße an
Wenn ich das Spielnormal ausführe in Eclipse dann werden die Bilder normal angezeigt.
Sobald ich aber dann exportiere und die JAR. File ausführe, stosse ich auf folgende Fehlermeldung:"Java Exception has occured".???:L
Meine Bilder habe ich auf der selben Stufe wie den bin oder den scr Ordner abgelegt.
Theoretisch müsste das doch egal sein, weil der ClassLoader, den ganzen Spielordner durchsuchen müsste???
Vielen dank für eure Antworten.
LG euer
Adriano-Celentano
ich stehe vor folgendem Proglem.
Ich lade Bilder in meine JLable hinein, um sie dann später anzeigen zulassen.
Anfangs habe ich es mit einem absoluten Pfad probiert, was auch funktioniert hat. Später stellte sich dann heraus, dass wenn man das Spiel in ein JAR. exportiert und die JAR auf einem fremden Computer ausführt, dass die Bilder nicht mehr angezeigt werden.
Ich habe ein bisschen gegoogelt und bin dann auf den getClassLoader gestossen, der die lokalen Datein auf die Bilder durchsuchen kann.
Ich habe, dass dann folgendermaßen umgesetzt:
Mein Dialog in dem das Label aufgerufen wird:
Java:
JLabel lblhinterGrund = new JLabel("");
lblhinterGrund.setIcon(new ScalingImageIcon(getClass().getClassLoader().getResource("Bilder/hintergrund_6.jpg"), 690, 515));
lblhinterGrund.setBounds(0, 0, 569, 425);
contentPanel.add(lblhinterGrund);
In dieser Klasse passe ich die Bildgröße auf die JLabelgröße an
Java:
package FinalVersion.com;
import java.awt.Component;
import java.awt.Graphics;
import java.net.URL;
import javax.swing.ImageIcon;
class ScalingImageIcon extends ImageIcon
{
private int w;
private int h;
ScalingImageIcon(URL fileName, int w, int h)
{
super(fileName);
this.w = w;
this.h = h;
}
@Override
public int getIconHeight()
{
return h;
}
@Override
public int getIconWidth()
{
return w;
}
@Override
public void paintIcon(Component c, Graphics g, int x, int y)
{
g.drawImage(getImage(),x,y,w,h,c);
}
}
Wenn ich das Spielnormal ausführe in Eclipse dann werden die Bilder normal angezeigt.
Sobald ich aber dann exportiere und die JAR. File ausführe, stosse ich auf folgende Fehlermeldung:"Java Exception has occured".???:L
Meine Bilder habe ich auf der selben Stufe wie den bin oder den scr Ordner abgelegt.
Theoretisch müsste das doch egal sein, weil der ClassLoader, den ganzen Spielordner durchsuchen müsste???
Vielen dank für eure Antworten.
LG euer
Adriano-Celentano