name des Jbuttons wird mit can not be resolved markiert

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

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 ?
 

vfl_freak

Premium-User
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
 

tom23

Mitglied
Was genau ist in diesem Fall relevant ich kann das leider noch nicht so gut einschätzen da ich noch nicht lange programmiere.
 

tom23

Mitglied
Hier erstelle ich den Button (Haben ihn in Montag umbennant)
Code:
tbar.add( montag = new JButton ("Montag"));
und hier wird der ActionListener hinzugefügt
Code:
montag.addActionListener(al);
 

vfl_freak

Premium-User
Moin,

es liegt mit Sicherheit nicht nur an einer Zeile, sondern eher am Zusammenhang!

Was genau ist in diesem Fall relevant ich kann das leider noch nicht so gut einschätzen da ich noch nicht lange programmiere.
Dann poste im Zweifel den gesamten Code!!!
Hier hat keiner Lust rumzuraten, was du wo gemacht hast oder auch nicht!

VG Klaus
 

zerix

Hausmeister
Moderator
Hey,

ich rate dennoch mal. Bei dem bisschen Code, den du gepostet hast, würde ich mal sagen, dass die Zeile eher so lauten sollte:

Java:
 if (al.getSource() == montag)

Viele Grüße
Sascha
 

tom23

Mitglied
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
 

tom23

Mitglied
Das größte problem ist gerade das montag,dienstag,etc. im zweiten teil nicht den jbuttons aus dem ersten teilzugeordnet werden
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Neue Beiträge