java rectangle获取xy_Java怎么根据鼠标拖动的XY,判断鼠标的移动方向?????

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class ButtonMove extends JFrame {

JButton jButton1 = new JButton();

JLabel lb = new JLabel();

int focusx = 0;

int focusy = 0;

int xa=0,ya=0;

public ButtonMove() {

try {

jbInit();

} catch (Exception e) {

e.printStackTrace();

}

}

private void jbInit() throws Exception {

jButton1.setBounds(new Rectangle(86, 113, 73, 25));

this.add(lb);

lb.setBounds(new Rectangle(20, 360, 400, 25));

jButton1.setText("jButton1");

jButton1.addMouseListener(new MouseProcess() {

});

jButton1.addMouseMotionListener(new MouseMotionProcess());

this.setLocale(java.util.Locale.getDefault());

this.getContentPane().setLayout(null);

this.getContentPane().add(jButton1, null);

this.setSize(400, 500);

this.setVisible(true);

}

private class MouseProcess extends MouseAdapter {

public void mouseClicked(MouseEvent e) {

}

public void mousePressed(MouseEvent e) {

focusx = e.getX();

focusy = e.getY();

xa=focusx;

ya=focusy;

}

public void mouseReleased(MouseEvent me){

}

}

private class MouseMotionProcess extends MouseMotionAdapter {

public void mouseDragged(MouseEvent e) {

Container container = jButton1.getParent();

int w = container.getWidth();

int h = container.getHeight();

int x = jButton1.getX() + e.getX() - focusx;

int y = jButton1.getY() + e.getY() - focusy; if (x + jButton1.getWidth() > w) {

x = w - jButton1.getWidth();

}

if (y + jButton1.getHeight() > h) {

y = h - jButton1.getHeight();

}

if (x < 0) {

x = 0;

}

if (y < 0) {

y = 0;

}

if(e.getX()-xa>0){

if(e.getY()-ya>0){

lb.setText("方向---〉右下");

}

else if(e.getY()-ya<0){

lb.setText("方向---〉右上");

}

else{

lb.setText("方向---〉右");

}

}

else if(e.getX()-xa<0){

if(e.getY()-ya>0){

lb.setText("方向---〉左下");

}

else if(e.getY()-ya<0){

lb.setText("方向---〉左上");

}

else{

lb.setText("方向---〉左");

}

}

else{

if(e.getY()-ya>0){

lb.setText("方向---〉下");

}

else if(e.getY()-ya<0){

lb.setText("方向---〉上");

}

}

xa = e.getX();

ya = e.getY();

jButton1.setLocation(x, y);

//jButton1.setLocation(x, y + jButton1.getHeight());

container.repaint();

container = null;

}

}

public static void main(String args[]) {

new ButtonMove();

}

}

取消

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值