Java swing zeichne ein Rechteck in der Maus per drag und drop
Ich bin erstellen einer rechteckigen Zeichnung Programm.Der Platz wird nur gezogen, wenn das Programm ziehen auf der Unterseite.
Auch wenn das ziehen in die andere Richtung, ich will, um sicherzustellen, dass die Quadrate sind richtig gezeichnet.
Wie kann ich es beheben?
Bitte helfen Sie mir.
**DrawRect.java**
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class DrawRect extends JPanel {
int x, y, w, h;
public static void main(String [] args) {
JFrame f = new JFrame("Draw Box Mouse 2");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setContentPane(new DrawRect());
f.setSize(300, 300); f.setVisible(true);
}
DrawRect() {
x = y = w = h = 0; //
MyMouseListener listener = new MyMouseListener();
addMouseListener(listener);
addMouseMotionListener(listener);
}
public void setStartPoint(int x, int y) {
this.x = x; this.y = y;
}
public void setEndPoint(int x, int y) {
w = Math.abs(this.x - x);
h = Math.abs(this.y - y);
}
class MyMouseListener extends MouseAdapter {
public void mousePressed(MouseEvent e) {
setStartPoint(e.getX(), e.getY());
}
public void mouseDragged(MouseEvent e) {
setEndPoint(e.getX(), e.getY()); repaint();
}
public void mouseReleased(MouseEvent e) {
setEndPoint(e.getX(), e.getY()); repaint();
}
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
Please help me.
g.drawRect(x, y, w, h);
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Probieren Sie etwas wie dieses.
Sie bestimmen start-Punkt gezielt.Startpunkt ist der min-x-und y-Punkte der 1. und letzten Maus-Koordinaten.
hier ist die Schritte, um dieses problem zu lösen
Math.min(x,x2);
Math.abs(x-x2);
code