Panel Mouse Kollisionabfrage

Feeder

Bekanntes Mitglied
Hey ich habe hier ein kleines Problem kann mir aber nicht vorstellen warum meine Kollisionsabfrage scheitert., wenn ich auf dem Panel drücke:

Java:
//ausgelöst durch ein MouseClickEvent
public static boolean isclick(Point pos, JPanel panel) // pos = Mouseposition{
			Point p = new Point(panel.getX(), panel.getY());
			SwingUtilities.convertPointToScreen(p,panel);
			if(p.getX() > pos.getX()){
				if(p.getX() + panel.getWidth() < pos.getX()){
					if(p.getY() > pos.getY()){
						if(p.getY() < pos.getY() + panel.getHeight()){
							return true;
						}
					}
				}
			
			
		}
			return false;		
	}
 

Joose

Top Contributor
Was ist deine konkrete Frage?
Hast du dir schon die Werte im Log bzw. der Konsole ausgeben lassen?
Dein Fehler liegt glaub ich im 2. und 4. if -> logischer Denkfehler
 

Feeder

Bekanntes Mitglied
also 2 war falsch, aber es ist immer noch nicht die Lösung. Ich versuche ein JPanel als Button zu ersetzten weil mir missfällt das der Button so statisch ist. Wenn meine Mouse auf das Panel klickt soll etwas passieren. Und meine Methode liefert true und false zrück. Also wo ist mein Codefehler außer dieser
 

Feeder

Bekanntes Mitglied
Java:
package greenblack.gui.clicks;

import java.awt.Point;

import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class CollsionTester {
	
public static boolean isclick(Point pos, JPanel panel){
		// pos = Mouseposition
		Point p = new Point(panel.getX(), panel.getY());
		SwingUtilities.convertPointToScreen(p,panel);
		if(pos.getX() < p.getX()){
			if(pos.getX()  < p.getX() + panel.getWidth()){

				if(pos.getY() < p.getY()){

					if(p.getY() > pos.getY() + panel.getHeight()){

						return true;
					}
				}
			}
		 
		 
		}
			return false;	
		}
}
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben