MouseEvent

Status
Nicht offen für weitere Antworten.

Sir_Steve

Mitglied
HI. Ich habe folgenden Code geschrieben:

Code:
class MainFrame extends Frame implements MouseListener
                {
		public void init(int hoch, int breit)
		{
			this.setSize(breit, hoch);
			this.setLocation(275,0);
			this.setVisible(true);
			this.setTitle("Test");
		}
		
		public void MouseEvent(MouseEvent f)
		{
			System.out.println(f.getY() + f.getX());	
		}
		
	}

Soll nix machen ausser die XY-Koordinaten bei einem Klick ausgeben. ABER:
Wenn ich das kompeliere kriege ich folgende Fehlermeldung:

MainFrame is not abstract and does not override abstract method mouseReleased(java.awt.event.MouseEvent) in java.awt.event.MouseListener

Was muss ich nun machen damit das funktioniert?

Danke für Hilfe, Grüße, Sir_Steve 8)
 
B

Beni

Gast
Die Fehlermeldung lesen:
override abstract method mouseReleased(java.awt.event.MouseEvent)

Das Interface MouseListener schreibt 5 Methoden vor:

API hat gesagt.:
public void mouseClicked(MouseEvent e)
Invoked when the mouse button has been clicked (pressed and released) on a component.

public void mouseEntered(MouseEvent e)
Invoked when the mouse enters a component.

public void mouseExited(MouseEvent e)
Invoked when the mouse exits a component.

public void mousePressed(MouseEvent e)
Invoked when a mouse button has been pressed on a component.

public void mouseReleased(MouseEvent e)
Invoked when a mouse button has been released on a component.

Und die musst du alle einzeln implementieren.

Code:
class MainFrame extends Frame implements MouseListener{
      public void init(int hoch, int breit){
         this.setSize(breit, hoch);
         this.setLocation(275,0);
         this.setVisible(true);
         this.setTitle("Test");

         this.addMouseListener( this );   // <<<<<<<< den MouseListener muss man auch registrieren, sonst nützt er nix!
      }
      
      public void mousePressed(MouseEvent f){
         System.out.println(f.getY() + f.getX());   
      }

      ... // Die anderen 4 Methoden
   }

Du kannst auch die Klasse MouseAdapter verwenden, und nur eine einzige Methode überschreiben (mit Hilfe von anonymen Klassen).

Code:
addMouseListener( new MouseAdapter(){
   public void mousePressed( MouseEvent e ){
      //  irgendwelcher Code der ausgeführt werden soll.
   }
});

mfg Beni
 
R

Roar

Gast
@Beni: mann bist du nett.. ich hätte jetzt nur zwei sätze geschrieben..
@steve: das gibt nochmal -1 level ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben