大吃一278 2022-11-30 09:06 采纳率: 84%
浏览 28
已结题

关于#java#的问题:实现:当鼠标在MainWindow窗口点击时,在窗口标题栏显示点击位置坐标

一个窗口程序定义如下,修改程序,实现:当鼠标在MainWindow窗口点击时,在窗口标题栏显示点击位置坐标。用实现MouseListener接口和继承MouseAdapter类两种方法实现。

import java.awt.*;
import javax.swing.*;
public class MainWindow {
     JFrame jf;
JLabel jl;
public MainWindow(){
    jf = new JFrame();
    jl = new JLabel(new ImageIcon("src\\chapter9\\school.jpg"));
jf.add(jl,BorderLayout.CENTER);
jf.setTitle("学生管理系统");
    jf.setSize(800,600);
    Dimension size = Toolkit.getDefaultToolkit().getScreenSize();        
jf.setLocation((size.width-jf.getWidth())/2,(size.height-jf.getHeight())/2);
jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);  
    jf.setVisible(true);
}
} 

  • 写回答

1条回答 默认 最新

  • 爱看书的小沐 2022-11-30 13:09
    关注

    试试。

    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
    
    public class MainWindow{
        private JFrame jf;
        
        public MainWindow() {
            jf=new JFrame("Java第一个窗口");
            Container con = jf.getContentPane();
            con.setBackground(Color.yellow);        //设置窗口背景色
            jf.setBounds(50,100,500,200);      //设置窗口在屏幕上的位置和大小
            jf.setVisible(true);
            jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);  //释放当前窗口
            
            //1、用实现MouseListener接口实现
            //jf.addMouseListener(myMouseListener);
            
            //2、用继承MouseAdapter类实现
            jf.addMouseListener(myMouseAdapter);
        }
        
        MouseListener myMouseListener = new MouseListener() {
            
            @Override
            public void mouseReleased(MouseEvent e) {
                System.out.println("鼠标释放");
                //鼠标按下后释放触发
                
            }
            
            @Override
            public void mousePressed(MouseEvent e) {
                System.out.println("鼠标按下");
                //鼠标按下时触发        
                
            }
            
            @Override
            public void mouseExited(MouseEvent e) {
                System.out.println("光标移除");
                //鼠标的光标移出到组件触发
                
            }
            
            @Override
            public void mouseEntered(MouseEvent e) {
                System.out.println("光标移动到组件");
                //鼠标的光标移动到组件触发
                
            }
            
            @Override
            public void mouseClicked(MouseEvent e) {
                System.out.println("鼠标发生过单机事件");
                //鼠标发生单机事件时触发
                if(e.getButton()==e.BUTTON1){    // 判断获取的按钮是否为鼠标的右击     
                    jf.setTitle("MouseListener: " + e.getX()+","+e.getY());     // 获得鼠标点击位置的坐标并发送到标签的文字上
                }
            }
        };
        
        MouseAdapter myMouseAdapter = new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                //System.out.println("鼠标点击了");
                jf.setTitle("MouseAdapter: " + e.getX()+","+e.getY());
            }
        };
        
        public static void main(String[] args) {
            new MainWindow();
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月1日
  • 已采纳回答 12月1日
  • 创建了问题 11月30日

悬赏问题

  • ¥20 ARM64架构下SSCMS部署问题
  • ¥20 请教如何让移动端的热区自适应
  • ¥30 为什么深度学习网络训练会出现训练集和测试集准确率和损失都不变的情况
  • ¥15 (标签-3D|关键词-色模型)
  • ¥15 发现在MSVS2022中”#pragma once“不起作用
  • ¥15 实时声纹降噪算法进行无关说话人语音抑制
  • ¥100 adb针对解决手机锁屏问题(相关搜索:手机锁屏)
  • ¥15 发现哔哩哔哩的粉丝只能显示前5页能不能爬出来
  • ¥15 oracle数据库求解
  • ¥15 c++ websocketpp连接币安 有报错,有偿求解