MouseLeftClicked

Status
Nicht offen für weitere Antworten.

unknown_member

Bekanntes Mitglied
Hi!
Wenn ich mit dem MouseListener einen Linksklick mit mouseLeftClicked abfange, tut sich nichts, wenn ich klicke. Ich habe dem Element einen MouseListener implementiert, muss ich dazu vllt etwas anderes implementieren?


thx, unknown_member
 
B

Beni

Gast
Die Methode "mouseLeftClicked" hast du ja erfunden, wie soll dann irgendjemand diese Methode aufrufen; es weiss ja niemand, dass es sie gibt?

Also wenn schon "mouseClicked" und dann das MouseEvent nach dem Button (getButton) fragen, der sollte den Wert "MouseEvent.BUTTON1" haben.

Ich weiss allerdings nicht, ob bei "mouseClicked" überhaupt der Button angeschaut wird; wenn du aber "mousePressed" und "mouseReleased" benutzt, sollte etwas geschehen.
 

Der Müde Joe

Top Contributor
SwingUtilities

public static boolean isLeftMouseButton(MouseEvent anEvent)
public static boolean isMiddleMouseButton(MouseEvent anEvent)
public static boolean isRightMouseButton(MouseEvent anEvent)

hehe..geht halt bei mac nicht immer !!!
 

DocRandom

Top Contributor
.hmm, ich kann Dir nur Standard-Code anbieten:
Code:
component.addMouseListener(new MyMouseListener());
    
    public class MyMouseListener extends MouseAdapter {
        public void mouseClicked(MouseEvent evt) {
            if ((evt.getModifiers() & InputEvent.BUTTON1_MASK) != 0) {
                processLeft(evt.getPoint());
            }
            if ((evt.getModifiers() & InputEvent.BUTTON2_MASK) != 0) {
                processMiddle(evt.getPoint());
            }
            if ((evt.getModifiers() & InputEvent.BUTTON3_MASK) != 0) {
                processRight(evt.getPoint());
            }
        }
    }

mfg
DocRandom
 

Der Müde Joe

Top Contributor
Code:
  	private void handleMouseEvent(MouseEvent e){
  		if( SwingUtilities.isLeftMouseButton(e) ){
  		}	
  		else if ( SwingUtilities.isRightMouseButton(e)){
  		}
  	}

so irgendwie...hab ich aus altem code von mir kopiert also sollte es funktionieren
Einfach den MouseEvent übergeben und abfragen. Mac tut nicht weil sie nicht immer
mehr mehrere MouseTasten haben. Die Tasten Emu von Mac funzt dabei nicht
soweit ich mich erinnern kann. Doc's Code mach natürlich genau das gleiche.
greets
 

unknown_member

Bekanntes Mitglied
Ich habe jetzt das ganze so eingebaut:

Code:
   private void handleMouseEvent(MouseEvent ev){
        if (SwingUtilities.isLeftMouseButton(ev) && ev.getSource() == points1) {
		System.out.println("Die linke Maustaste wurde gedrückt.");
        }   
        else if (SwingUtilities.isRightMouseButton(ev) && ev.getSource() == points1) {
		System.out.println("Die rechte Maustaste wurde gedrückt.");
        }
     }


Fehler werden mir keine angezeigt. Nur passieren tut nichts... Muss ich dazu dem JPanel points1 vllt einen speziellen Listener adden?
 

Der Müde Joe

Top Contributor
Code:
public class AntPanel extends JPanel implements Runnable, Observer{

  	public AntPanel(AntApplet wc, int period){
	mouseInteraction();	
	}
	
	
	/*
	 *add mouse Listener to frame
	 */
	private void mouseInteraction(){
	 	addMouseListener( new MouseAdapter(){
	 		public void mousePressed(MouseEvent e){
	 			handleMouseEvent(e);
	 		}
	 	});
	 }
  	
  	private void handleMouseEvent(MouseEvent e){
  		if( SwingUtilities.isLeftMouseButton(e) ){

  		}	
  		else if ( SwingUtilities.isRightMouseButton(e)){
  		}
  	}
}

das hatte ich mal so und es hat funktioniert. nur das wesentliche..
Evtl. nicht so optimal, da der MouseListener direkt erstellt und geaddet
wird. Ist so nicht sehr flexibel...
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben