JAR will nicht mit Bildern, Recherche im forum erfolglos

Status
Nicht offen für weitere Antworten.

Endolino

Mitglied
Hallo liebe Gemeinde. Versuche IMAGES in einem JAR aufzurufen. Mit dem Eclipse Plugin FAT JAR habe ich mir eine JAR gemacht und habe bemerkt das jetzt nur noch die Bilder gehen wenn ich wirklich den Ordner IMAGES, wie im Code geschrieben dabei lege. Das möchte ich jedich vermeiden.
Haut mich nicht für den Code ist von nem Studienkollegen der die Gui entwicklet hat.
Nun habe ich in 4 Tagen Abgabe und ich darf nur eine JAR abliefern.
Folgender Code läuft in Eclipse jedoch nicht in der Jar.

iCH NEHME ja mal an es liegt am statischen Kontext :-(
wie gesagt ich finde einfach keine Lösungen nach Stunden der Recherche.

Code:
 private static JToolBar getJToolbar() {
      if (tb == null) {
                  
            tb = new JToolBar ();
            tb.setLayout(null);
            tb.setPreferredSize( new Dimension(1000, 44) ); //(breite, hšhe)
            tb.setFloatable(false);
             
            tb.add(getSearchfield());
              
----------addButtons(tb); 
            }
      return tb;
      }
    
    //Toolbar-Buttons and background-image
    public static void addButtons(JToolBar jtb) {

.
.
.
//iconas = new JButton(new ImageIcon("images/as.jpg"));
iconas = new JButton();
iconas.setToolTipText("http://www.last.fm/");
iconas.setBounds( 959, 1, 41, 42 ); 
iconas.setOpaque(true);
iconas.setVisible(true);

// Das habe ich jetzt mal getestet in der JAR, geht natürlich nicht.
// getClass() kann ich nicht nehmen, daher ClassLoader

URL url = ClassLoader.getSystemResource("./images/as.jpg");
iconas.setIcon(new ImageIcon(url));
iconas.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
                  BareBonesBrowserLaunch.openURL("http://www.last.fm/"); }
                  } );
          jtb.add(iconas);
        
            //Background right
            iconright = new ImageIcon("images/tbbgright.jpg");
            jLabelIconright = new JLabel(iconright);
            jLabelIconright.setBounds( 478, 1, 522, 42 ); 
            jLabelIconright.setOpaque(true);
            jtb.add(jLabelIconright);
            
    }
 
Code:
URL url = ClassLoader.getSystemResource("./images/as.jpg");
iconas.setIcon(new ImageIcon(url));
ersetzen durch:
Code:
ImageIcon icon = new ImageIcon(ClassLoader.getSystemResource("images/as.jpg"));
iconas.setIcon(new ImageIcon(url));
Das Prinzip bei allen Bildern benutzen und dann natürlich in Eclipse per FatJar den images-Ordner mitexportieren
So mach ich es zumindest bei mir.
 
Muss es dann nicht :

Code:
ImageIcon icon = new ImageIcon(ClassLoader.getSystemResource("images/as.jpg"));
iconas.setIcon(new ImageIcon(icon));

... heissen?
Weil woher soll dann das url kommen? Oder verstehe ich was falsch??

Das komische ist :

iconas = new JButton();
iconas.setToolTipText("http://www.last.fm/");
iconas.setBounds( 959, 1, 41, 42 );
iconas.setOpaque(true);
iconas.setVisible(true);
iconas.setIcon(new ImageIcon(ClassLoader.getSystemResource("./images/as.jpg")));
iconas.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
BareBonesBrowserLaunch.openURL("http://www.last.fm/"); }
} );
jtb.add(iconas);

...hier gehts in der Art und Weise...

Code:
tbBempty = new JButton();
        tbBempty.setBounds( 0, 1, 1, 42 ); 
        tbBempty.setOpaque(true);
        tbBempty.setVisible(true);
        tbBempty.setIcon(new ImageIcon(ClassLoader.getSystemResource("images/tbbgleft.jpg")));
        jtb.add(tbBempty);

und hier nicht....
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben