啦啦啦864 2021-12-03 20:29 采纳率: 57.1%
浏览 74
已结题

要实现点击一个按钮让另一个按钮移动,不知道错在哪里了,程序运行就直接结束了,连窗口都没弹出来

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
//第一个类
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);
    }
}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月11日
    • 创建了问题 12月3日

    悬赏问题

    • ¥15 为啥画版图在Run DRC会出现Connect Error?可我Calibre的hostname和计算机的hostname已经设置成一样的了。
    • ¥20 网站后台使用极速模式非常的卡
    • ¥20 Keil uVision5创建project没反应
    • ¥15 mmseqs内存报错
    • ¥15 vika文档如何与obsidian同步
    • ¥15 华为手机相册里面的照片能够替换成自己想要的照片吗?
    • ¥15 陆空双模式无人机飞控设置
    • ¥15 sentaurus lithography
    • ¥100 求抖音ck号 或者提ck教程
    • ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)