name des Jbuttons wird mit can not be resolved markiert

tom23

Mitglied
Ich möchte das wenn einer meiner JButtobs gedrückt wird das ein text ausgegeben wird dafür müsste nur noch meine JButton dessen name nach rechere scheinbar in eine if else abfrage kommt
Code:
else if (ae.getSource() == al.button1) {
    home.setLabelText(("button1 wurde gedrückt"));
aber Button1 wird immer unterstriechen und an der seite steht : button1 can not be resolved or is not a field
weiß wer woran das liegt ?
 
Lösung
Ok, jetzt wird es klar.
Bei dir ist al der ActionListener, der in der Klasse menü definiert wird genau wie die Buttons. Die kannst du dann nicht in der Klasse menü2 benutzten, weil die sie ja nicht kennt. Eine Klasse bildet einen eigenen Namensraum und nur dort sind die Namen bekannt.

Pack mal den Code in die actionPerformed von al und entferne die actionPerformed in der anderen Klasse.
Java:
if( ae.getSource() == montag) { //null bezieht sich wahrscheinlich auf java objekte und ist deshalb ungeignet
    menü.setLabelText(("Montag"));
}
else if (ae.getSource() == dienstag) {
    menü.setLabelText(("Dienstag"));
}
else if (ae.getSource() == mittwoch) {
    menü.setLabelText(("Mittwoch"));
}
else if (ae.getSource() == donnerstag) {...
Moin,

die Fehlermeldung sagt Dir (etwas frei übersetzt), dass Deine Variable "nicht aufgelöst werden kann oder nicht bekannt ist"!
Was soll denn Deiner Meinung nach "actionListener.button" sein??
Ein ActionListener kann keinen Button 'haben', zudem musst Du 'button1' irgendwo deklarieren!

Aber mal in Blaue geschossen: vermutlich sollte der Button 'home' zugeordnet werden ?!?!?
Poste mal den ganzen (relevanten) Code!

VG Klaus
 
Java:
package menü;

import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class menü extends JFrame implements ActionListener
{
    /**
     *
     */
    private static  long serialVersionUID = 1L;

    public static void main (String[] args )
    {   
        JButton montag;
        JButton dienstag;
        JButton mittwoch;
        JButton donnerstag;
        JButton freitag;
        JLabel Label;
        
    JFrame Hauptmenü = new JFrame ("Hauptmenü");
    Hauptmenü.setSize(400,400);
    Label = new JLabel();
    Label.setVerticalAlignment(SwingConstants.CENTER);
    Label.setHorizontalAlignment(SwingConstants.CENTER);
    Label.setVisible(true);
    JToolBar tbar = new JToolBar();
    
    
    tbar.add( montag = new JButton ("Montag"));
    tbar.add( dienstag = new JButton ("Dienstag"));
    tbar.add( mittwoch = new JButton ("Mittwoch"));
    tbar.add( donnerstag = new JButton("Donnerstag"));
    tbar.add( freitag = new JButton("Freitag"));
    
    ActionListener al = new ActionListener () {

        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            
        }
    };
    
    
    montag.addActionListener(al);
    dienstag.addActionListener(al);
    mittwoch.addActionListener(al);
    donnerstag.addActionListener(al);// statt al oder null eventuel etwas anderser
    freitag.addActionListener(al);
    
    Hauptmenü.add(Label);
    Hauptmenü.add(tbar);
    Hauptmenü.setVisible(true);}
    
    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        
    }

    public static void setLabelText(String string) {
        // TODO Auto-generated method stub
        
    }

    
        
    }
Der actionListener soll in dem folgendem teil abgefragt werden
Code:
package menü;

import javax.swing.*;
import java.awt.Component;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.EventObject;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class menü2 extends menü{

    public static void main(String[] args)
    {
        menü2 m = new menü2();
        m.setVisible(true);

    }
        
    
public void actionPerformed (ActionEvent ae) {
    
if( al.getSource() == montag) { //null bezieht sich wahrscheinlich auf java objekte und ist deshalb ungeignet
    menü.setLabelText(("Montag"));
}
else if (ae.getSource() == al.dienstag) {
    menü.setLabelText(("Dienstag"));
}
else if (ae.getSource() == al.mittwoch) {
    menü.setLabelText(("Mittwoch"));
}
else if (ae.getSource() == al.donnerstag) {
    menü.setLabelText(("Donnerstag"));
}
else if (ae.getSource() == al.freitag) {
    menü.setLabelText(("Freitag"));
}
}
}
in zeile 23 habe ich den tipp von zerix angewendet deswegen ist diese anders als die folgenden
 
Zurück