问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
//第一个类
import javax.swing.*;
import java.awt.*;
import java.util.Locale;
import java.*;
public class BM extends JFrame {
JButton btnOne,btnTwo;
MoveListener oneListener,twoListener;//JButton的监视器
public void BM(){
init();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void init(){
setLayout(null);
btnOne=new JButton("点击我");
btnTwo=new JButton("点击我");
oneListener=new MoveListener();
twoListener=new MoveListener();
oneListener.setJButton(btnTwo);//把第二个JButton放到第一个监视器
twoListener.setJButton(btnOne);//把第一个JButton放到第二个监视器
btnOne.addMouseListener(oneListener);//第一个JButton注册第一个监视器
btnTwo.addMouseListener(twoListener);//第二个JButton注册第二个监视器
btnOne.setBounds(200,200,70,50);
btnTwo.setBounds(300,200,70,50);
add(btnOne);
add(btnTwo);
}
}
//第二个类
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class MoveListener implements MouseListener {
JButton btn;
int a,b;
public void setJButton(JButton b){//设置JButton
btn=b;
}
public void mouseClicked(MouseEvent e){//有单击就让JButton移动
a=btn.getBounds().x;
b=btn.getBounds().y;
btn.setLocation(a+10,b);
}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
}
//主函数
import java.*;
public class Main {
public static void main(String[] args) {
BM bm=new BM();
bm.setTitle("按钮移动");
bm.setBounds(12,12,400,400);
}
}