Es is mir eigentlich schon peinlich sowas zu fragen aber ich kriegs nicht hin, ne billige Methode aufzurufen :?
Bildbetrachter.java:57: bildLaden(CFenster) in CBild cannot be applied to (CFenster.CActionListener)
bild.bildLaden(this);
Der Fehler tritt in Zeile 40 auf
Es fehlen natürlich ein paar Klassen und so, aber ich denk mal, der Fehler is hier irgendwo.
Bildbetrachter.java:57: bildLaden(CFenster) in CBild cannot be applied to (CFenster.CActionListener)
bild.bildLaden(this);
Der Fehler tritt in Zeile 40 auf
Code:
//Die Klasse des Fensters
class CFenster extends JFrame {
//der Konstruktor
CFenster (String titel) {
//ruft zunächst den Konstruktor der Basisklasse auf
super(titel);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
//das Panel für die Zeichenfläche
CJPanel panel = new CJPanel(this);
add(panel);
//eine Menüleiste wird angelegt
JMenuBar menueleiste = new JMenuBar();
setJMenuBar(menueleiste);
//ein Menü wird angelegt
JMenu menue1 = new JMenu("Datei");
//eine Menüeintrag wird angelegt
JMenuItem eintrag1 = new JMenuItem("Bild laden");
eintrag1.addActionListener(new CActionListener());
JMenuItem eintrag2 = new JMenuItem("Programm beenden");
eintrag2.addActionListener(new CActionListener());
menue1.add(eintrag1);
menue1.add(eintrag2);
menueleiste.add(menue1);
}
//der MausListener zur Ereignisbehandlung des Fensters bzw der Menüleiste
//wird natürlich im JFrame an sich definiert, da er ja auch zu diesem gehört
class CActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String label;
label = e.getActionCommand();
if (label.equals("Programm beenden")){
System.exit(0);
} else { //es muss "Bild laden" ausgewählt worden sein
CBild bild = new CBild();
bild.bildLaden(this); // FEHLER
}
}
}
}
class CBild {
String dateiname;
public void bildLaden(CFenster f) {
FileDialog d = new FileDialog(f,"Bilddatei laden...",FileDialog.LOAD);
d.setVisible(true);
dateiname = d.getFile();
}
}
Es fehlen natürlich ein paar Klassen und so, aber ich denk mal, der Fehler is hier irgendwo.