ich bin gerade bei grafischen Oberflächen und hab den folgenden Testcode ausprobiert.
Code:
import java.awt.*;
import javax.swing.*;
/** Erzeuge ein einfaches Swing-Fenster mit mehreren Panels */
public class FrameMitPanels extends JFrame {
Container c; // Container dieses Frames
JPanel jp1, jp2, jp3; // Panels
public FrameMitPanels() { // Konstruktor
c = getContentPane(); // Container bestimmen
// Panels erzeugen
jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel(new GridLayout(2, 3));
// Vier Tasten in Panel 1 einfuegen
for (int i = 1; i <= 4; i++)
jp1.add(new JButton("Taste " + i));
// Bildobjekt erzeugen
Icon bild = new ImageIcon("babycatSmall.jpg");
// Bild drei mal in Panel 2 einfuegen
for (int i = 1; i <= 3; i++)
jp2.add(new JLabel(bild));
// Sechs Haekchen-Kaestchen in Panel 3 einfuegen
for (int i = 1; i <= 6; i++)
jp3.add(new JCheckBox("Auswahl-Box " + i));
// Panels in den Container einfuegen
c.add(jp1, BorderLayout.NORTH);
c.add(jp2, BorderLayout.CENTER);
c.add(jp3, BorderLayout.SOUTH);
}
public static void main(String[] args) {
FrameMitPanels fenster = new FrameMitPanels();
fenster.setTitle("Label mit Panels");
fenster.setSize(350, 200);
fenster.setVisible(true);
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Aus der Konsole (CMD > Windows) heraus funktioniert es super, das Bild wird 3x angezeigt, jedoch beim Start über Eclipse werden die Bilder nicht angezeigt.
Das Bild selbst ist im src-Ordner und im bin-Ordner drin. Das ist doch ein Bug von Eclipse, oder? Kennt jemand das Problem und hat eine Problemlösung?
Jo, passt, aber ist doch krass, ich hatte es erst im src-Ordner und beim Kompilieren durch Eclipse wurde es automatisch im bin-Ordner erstellt, was für mich auch Sinn ergab.
Wie ist das denn, ist das jetzt nur ein Problem von Eclipse selbst oder muss das Bild auch sonst im blanken Projekt-Ordner liegen, wenn man später z.B. ein JAR machen will?
Wie ist das denn, ist das jetzt nur ein Problem von Eclipse selbst oder muss das Bild auch sonst im blanken Projekt-Ordner liegen, wenn man später z.B. ein JAR machen will?
Nein, es liegt daran wie Du Dein Bild lädst. Du gibst ja nur den Dateinamen an.
Vor allem wenn Du das Bild später aus eine Jar laden willst sind hier ein paar Möglichkeiten gelistet: Grafikdateien laden und anzeigen ? Byte-Welt Wiki