Ich möchte Kollisionen für Drag-Komponenten in Java Swing erstellen könnenJava

Java-Forum
Guest
 Ich möchte Kollisionen für Drag-Komponenten in Java Swing erstellen können

Post by Guest »

Ich habe versucht, eine JPanel-Komponente aus einem von mir angesehenen YT-Video herausziehbar zu machen. Das Problem dabei ist, dass sie das Panel zieht, auch wenn sich meine Maus nicht direkt darüber befindet. Ich habe auch versucht, im Internet nachzusehen, wie man Grenzen für das Ziehen festlegt, konnte aber nichts dazu finden. Ich habe mich gefragt, ob jemand die Lösung hat.

Code: Select all

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;

public class DragPanel extends JPanel {

ImageIcon image = new ImageIcon("A:\\Aseprite\\Saves\\Blue Log.png");
Point imageCorner;
Point prePt;

DragPanel() {

imageCorner = new Point(0,0);
ClickListener clickListener = new ClickListener();
DragListener dragListener = new DragListener();
this.addMouseListener(clickListener);
this.addMouseMotionListener(dragListener);
}

public void paintComponent(Graphics g) {
super.paintComponent(g);
image.paintIcon(this, g,(int)imageCorner.getX(),(int)imageCorner.getY());
}

private class ClickListener extends MouseAdapter {

public void mousePressed(MouseEvent e) {
prePt = e.getPoint();
}
}

private class DragListener extends MouseMotionAdapter {

public void mouseDragged(MouseEvent e) {
Point currentPt = e.getPoint();

imageCorner.translate(((int)(currentPt.getX() - prePt.getX())), (int)(currentPt.getY() - prePt.getY()));
prePt = currentPt;
repaint();
}
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post