Fórum Arraste de imagem - Como melhor esta aplicação? #517797
24/04/2015
0
Criei esta aplicação para arrastar uma imagem porém não há precisão no arraste.
Como melhorar este código para que aja precisão no arraste?
Como melhorar este código para que aja precisão no arraste?
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javafx.geometry.Point2D;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class InserirDinamicamete extends JFrame implements MouseMotionListener, MouseListener{
JLabel jlabel;
ImageIcon ii;
private int initX;
private int initY;
private Point2D pontoDeArraste;
public InserirDinamicamete(){
super("Minha Janela");
setSize(400,300);
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
jlabel = new JLabel();
jlabel.setSize(40,37);
jlabel.setLocation(100, 100);
jlabel.setIcon(new ImageIcon(getClass().getResource("imagens//firefox.jpg")));
getContentPane().add(jlabel);
jlabel.addMouseMotionListener(this);
jlabel.addMouseListener(this);
}
public static void main(String[] args) {
new InserirDinamicamete().setVisible(true);
}
@Override
public void mouseDragged(MouseEvent e) {
System.out.println("1");
int dragX = (int) (e.getX() - pontoDeArraste.getX());
int dragY = (int) (e.getY() - pontoDeArraste.getY());
//Calcula nova posição do círculo
int novaPosicaoX = initX + dragX;
int novaPosicaoY = initY + dragY;
//Se a nova posição não exeder as bordas, muda a posição
jlabel.setLocation(novaPosicaoX, novaPosicaoY);
}
@Override
public void mouseMoved(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
initX = jlabel.getX();
initY = jlabel.getY();
pontoDeArraste = new Point2D(e.getX(), e.getY());
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}Reinilton
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)