Cannot resolve Symbol keyPressed

Status
Nicht offen für weitere Antworten.

777

Bekanntes Mitglied
Hi Leute,
Ich habe hier den Code von einem Applet auf dem sich allein ein Button befindet. Dem ist ein Key und ein Mauslistener zugeordnet. Drückt der User eine Taste wird der Formhintergrund gelb, klickt er aber mit der Maus drauf wird der Hintergrund rot.
Blöderweise macht der Compiler grad das nicht...

Code:
import java.awt.*;
import java.applet.*;
import java.awt.event.KeyListener;

public class Tasten extends java.applet.Applet 
{
 private TastenKeyListener myTKL;
 private TastenMouseListener myTML;
		
	public void init()
	{
		setLayout(null);
		setSize(426,266);
        add(Probe);
        Probe.setBounds(10,10,100,30);
        Probe.addKeyListener(myTKL);
        Probe.addMouseListener(myTML);
    }
	java.awt.Button Probe = new java.awt.Button();
	
        public class TastenKeyListener extends java.awt.event.KeyAdapter implements KeyListener
        {
                private Tasten thetasten;
                  
                public TastenKeyListener(Tasten aTasten)
                {
                    super();
                    thetasten = aTasten;
                }
                     
                public void keyPressed(java.awt.event.KeyEvent event) 
                {
             
                    Object obj = event.getSource(); 
                        if(obj == Probe)
                            Tasten.this.setBackground(Color.red);
                }

                    public void keyReleased(java.awt.event.KeyEvent event)  {}
                    public void keyTyped(java.awt.event.KeyEvent event)  {} 
        }  
    
        public class TastenMouseListener extends java.awt.event.MouseAdapter
        {
                private Tasten theMaus;
                
                public TastenMouseListener(Tasten aMaus)
                {
                    super();
                    theMaus = aMaus; 
                }    
                
                public void mousePressed(java.awt.event.MouseEvent event)
                { 
                    
                    Object obj = event.getSource(); 
                        if(obj == Probe)
                            Tasten.this.setBackground(Color.yellow);
                }    
        }   


}



Jemand ne Ahung, was ich verändern muss?

cya
David
 
Du übergibst dem Button zweimal "null". Initialisier deine beiden Listener-Variablen (myMTL und myKTL) bevor du die "add..."-Methoden aufrufst, dann funktioniert es.

P.S. der Compiler hat mit dem Problem garnichts zu tun... Bitte keine falschen Fehlermeldungen posten nur damit was gesagt wurde.
 
Ich hatte grad an meinem Code noch sehr viele Fehler etc entdeckt.
Jetzt sieht er hier so aus:


Code:
import java.awt.*;
import java.applet.*;
import java.awt.event.KeyListener;

public class Tasten extends java.applet.Applet 
{
private TastenKeyListener myTKL;
private TastenMouseListener myTML;
		
	public void init()
	{
		setLayout(null);
		setSize(426,266);
        add(Probe);
        Probe.setBounds(10,10,100,30);
        Probe.addKeyListener(myTKL);
        Probe.addMouseListener(myTML);
        TastenKeyListener myTKL = new TastenKeyListener();
        TastenMouseListener myTML = new TastenMouseListener();
                
    }
	java.awt.Button Probe = new java.awt.Button();
	
 
                
        public class TastenKeyListener extends java.awt.event.KeyAdapter implements KeyListener
        {
                private Tasten thetasten;
      
 	            
                public TastenKeyListener(Tasten aTasten)
                {
                    super();
                    thetasten = aTasten;
                }
                     
                public void keyPressed(java.awt.event.KeyEvent event) 
                {
             
                    Object obj = event.getSource(); 
                        if(obj == Probe)
                            Tasten.this.setBackground(Color.red);
                }

                    public void keyReleased(java.awt.event.KeyEvent event)  {}
                    public void keyTyped(java.awt.event.KeyEvent event)  {} 
        }  
    
        public class TastenMouseListener extends java.awt.event.MouseAdapter
        { 	            
                private Tasten theMaus;
                
                public TastenMouseListener(Tasten aMaus)
                {
                    super();
                    theMaus = aMaus; 
                }    
                
                public void mousePressed(java.awt.event.MouseEvent event)
                { 
                    
                    Object obj = event.getSource(); 
                        if(obj == Probe)
                            Tasten.this.setBackground(Color.yellow);
                }    
        }   


}



Als Fehler kommt:

Error: E:\Programmieren\Java\Mulitlistening\Tasten.java(18): cannot resolve symbol: constructor TastenKeyListener () in class Tasten.TastenKeyListener
Error: E:\Programmieren\Java\Mulitlistening\Tasten.java(19): cannot resolve symbol: constructor TastenMouseListener () in class Tasten.TastenMouseListener

Wenn ich nun vor der Addmethode initialisiere würde das private nicht mehr passen 🙁
 
Code:
        TastenKeyListener myTKL = new TastenKeyListener( this );
        TastenMouseListener myTML = new TastenMouseListener( this ); 
        Probe.addKeyListener(myTKL);
        Probe.addMouseListener(myTML);
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben