Hi,
ich programmiere mit Eclipse und erstelle auch meine Jar-Files mit Eclipse. So, letztens hatte ich in einem Programm ein JPanel mit Hintergrundbild, das Ganze hat mit folgendem Code auch hervorragend funktioniert:
Den Ordner Images hab ich nachträglich ins Jar gepackt (Das von Eclipse erstellte Jar entpackt und mit dem Images-Ordner und dem entpackten Jar ein neues Zip-File erstellt und in .jar umbenannt), weil ich noch nicht rausgefunden habe, wie ich den Ordner mit Eclipse direkt zum Jar-File hinzufügen kann. (Vielleicht hat da ja auch jmd. ein Tipp für mich)
Nun zum eigentlichen Problem:
In meinem aktuellen Programm (Vier Gewinnt) hab ich das Spielfeld mit nem JLabel[][]-Array realisiert und will die Spielsteine per ImageIcon auf dem JLabel anzeigen. In Eclipse funktioniert das auch so wie gewollt, im Jar-File allerdings nicht. Hier der Code-Ausschnitt:
Das Jar-File hab ich so erstellt wie oben erklärt. Wenn ich es per Doppelklick starte tut sich scheinbar nichts, aber im Taskmanager wird der Prozess javaw.exe gestartet, aber es wird nichts angezeigt. Das Problem kann nur an den Bildern liegen, da ohne die Bilder (Da hab ich die Spielsteine über feld[j].setText("X"); realisiert) auch das Jar-File keine Probleme macht.
Danke für die Hilfe!
Gruß,
Boar
ich programmiere mit Eclipse und erstelle auch meine Jar-Files mit Eclipse. So, letztens hatte ich in einem Programm ein JPanel mit Hintergrundbild, das Ganze hat mit folgendem Code auch hervorragend funktioniert:
Code:
public class MeineKlasse extends JPanel {
private URL url;
private Image spielfeld;
public MeineKlasse() {
url = ClassLoader.getSystemResource("Images/Spielfeld.jpg");
spielfeld = Toolkit.getDefaultToolkit().getImage(url);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage( spielfeld, 0, 0, this );
}
}
Den Ordner Images hab ich nachträglich ins Jar gepackt (Das von Eclipse erstellte Jar entpackt und mit dem Images-Ordner und dem entpackten Jar ein neues Zip-File erstellt und in .jar umbenannt), weil ich noch nicht rausgefunden habe, wie ich den Ordner mit Eclipse direkt zum Jar-File hinzufügen kann. (Vielleicht hat da ja auch jmd. ein Tipp für mich)
Nun zum eigentlichen Problem:
In meinem aktuellen Programm (Vier Gewinnt) hab ich das Spielfeld mit nem JLabel[][]-Array realisiert und will die Spielsteine per ImageIcon auf dem JLabel anzeigen. In Eclipse funktioniert das auch so wie gewollt, im Jar-File allerdings nicht. Hier der Code-Ausschnitt:
Code:
public class VGSpielfeld extends JPanel {
private JLabel[][] feld;
private Image img;
private URL url;
private ImageIcon feldRot, feldGelb, feldLeer, winRot, winGelb;
public VGSpielfeld(VGBoard board) {
setPreferredSize(new Dimension(350,300));
setLayout(new GridLayout(6,7));
feld = new JLabel[6][7];
url = ClassLoader.getSystemResource( "img/feld_leer.jpg" );
img = Toolkit.getDefaultToolkit().getImage(url);
feldLeer = new ImageIcon(img);
url = ClassLoader.getSystemResource( "img/feld_rot.jpg" );
img = Toolkit.getDefaultToolkit().getImage(url);
feldRot = new ImageIcon(img);
url = ClassLoader.getSystemResource( "img/feld_gelb.jpg" );
img = Toolkit.getDefaultToolkit().getImage(url);
feldGelb = new ImageIcon(img);
url = ClassLoader.getSystemResource( "img/win_rot.jpg" );
img = Toolkit.getDefaultToolkit().getImage(url);
winRot = new ImageIcon(img);
url = ClassLoader.getSystemResource( "img/win_gelb.jpg" );
img = Toolkit.getDefaultToolkit().getImage(url);
winGelb = new ImageIcon(img);
for(int i=0; i<6; i++)
{
for(int j=0; j<7; j++)
{
feld[i][j] = new JLabel(feldLeer,JLabel.CENTER);
feld[i][j].setBorder(new LineBorder(Color.black,1));
add(feld[i][j]);
feld[i][j].setOpaque(true);
}
}
setBackground(Color.WHITE);
}
Das Jar-File hab ich so erstellt wie oben erklärt. Wenn ich es per Doppelklick starte tut sich scheinbar nichts, aber im Taskmanager wird der Prozess javaw.exe gestartet, aber es wird nichts angezeigt. Das Problem kann nur an den Bildern liegen, da ohne die Bilder (Da hab ich die Spielsteine über feld[j].setText("X"); realisiert) auch das Jar-File keine Probleme macht.
Danke für die Hilfe!
Gruß,
Boar