Hallo @all
Was ich machen will ist ein kleiner Visual Editor für meine Java2D Komponenten.
Also vergrößern, verkleinern, verschieben und drehen.
Jetzt habe ich schon das erste Problem beim vergrößern und verkleinern.
Im MouseDrag wird die neue Größe und Position festgelegt.
Als Bespiel habe ich jetzt einfach ein Rechteck als Komponente genommen.
Wenn ich jetzt vergrößere nach rechts oben dann zuckt die Y Koordinate.
Wenn ich nach links unten vergrößere dann zuckt die X Koordinate.
In den beiden anderen Richtungen geht es Prima.
Sollte ich lieber die absolute Mouseposition bestimmen ? Wenn ja wie mache ich das.
Was mache ich falsch ? Kennt jemand ne Internetseite zu dem Thema da ich noch nicht so gut bin mit Graphik Bearbeitung.
Denke das ist der wichtigste Code:
Was ich machen will ist ein kleiner Visual Editor für meine Java2D Komponenten.
Also vergrößern, verkleinern, verschieben und drehen.
Jetzt habe ich schon das erste Problem beim vergrößern und verkleinern.
Im MouseDrag wird die neue Größe und Position festgelegt.
Als Bespiel habe ich jetzt einfach ein Rechteck als Komponente genommen.
Wenn ich jetzt vergrößere nach rechts oben dann zuckt die Y Koordinate.
Wenn ich nach links unten vergrößere dann zuckt die X Koordinate.
In den beiden anderen Richtungen geht es Prima.
Sollte ich lieber die absolute Mouseposition bestimmen ? Wenn ja wie mache ich das.
Was mache ich falsch ? Kennt jemand ne Internetseite zu dem Thema da ich noch nicht so gut bin mit Graphik Bearbeitung.
Denke das ist der wichtigste Code:
Code:
private void setMouseDragListener() {
mouseDragListener = new java.awt.event.MouseMotionAdapter() {
public void mouseDragged(java.awt.event.MouseEvent e) {
int q = 0;
if (isMarked && isMouseDown) {
//Resize Upper Left Corner
newX = self.getX() + e.getX();
newY = self.getY() + e.getY();
System.out.println("e.getPoint():"+e.getPoint());
self.setLocation(newX, newY);
if (oldX - newX+oldWidth > 0 ){
if (oldY - newY + oldHeight>0){
self.setSize(oldX - newX + oldWidth,(oldY - newY) + oldHeight);
}
else{
newX = self.getX() + e.getX();
newY = self.getY() - e.getY();
self.setLocation(newX, newY);
self.setSize((oldX - newX) + oldWidth,e.getY());
}
}
else{
if (oldY - newY + oldHeight>0){
newX = self.getX() - e.getX();
newY = self.getY() + e.getY();
self.setLocation(newX, newY);
self.setSize(e.getX(),(oldY - newY) + oldHeight);
}
else{
newX = self.getX() - e.getX();
newY = self.getY() - e.getY();
self.setLocation(newX, newY);
self.setSize(e.getX(),e.getY());
}
}
System.out.println((oldX-newX+oldWidth));
}
}
};
}
private void setMouseDownListener() {
mouseDownListener = new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent e) {
//System.out.println("OnObject9 -> mouseDown()");
if (!isMovable) {
return;
}
if (!isSizable) {
return;
}
setIsMouseDown(true);
System.out.println("MouseDown X " + e.getX());
System.out.println("MouseDown Y " + e.getY());
oldX = self.getX();//+e.getX();
oldY = self.getY();//+e.getY();
oldWidth = self.getWidth();
oldHeight = self.getHeight();
if (isMarked) {
System.out.println("x == " + e.getX() + " - y == " + e.getY());
//Upper Left Region Box
if ((e.getX() >= 1)
&& (e.getX() <= markerSize)
&& (e.getY() >= 1)
&& (e.getY() <= markerSize)) {
System.out.println("clicked upperleft regionbox");
}
//Upper Right Region Box
if ((e.getX() >= getWidth() - markerSize)
&& (e.getX() <= getWidth() - 1)
&& (e.getY() >= 1)
&& (e.getY() <= markerSize)) {
System.out.println("clicked upperright regionbox");
}
//Lower Left Region Box
if ((e.getX() >= 1)
&& (e.getX() <= markerSize)
&& (e.getY() >= getHeight() - markerSize)
&& (e.getY() <= getHeight() - 1)) {
System.out.println("clicked lowerleft regionbox");
}
//Lower Right Region Box
if ((e.getX() >= getWidth() - markerSize )
&& (e.getX() <= getWidth() - 1)
&& (e.getY() >= getHeight() - markerSize)
&& (e.getY() <= getHeight() - 1)) {
System.out.println("clicked lowerright regionbox");
}
}
};
};
}