首页 > 技术文章 > swing 监听器常用方法

classicltl 2022-04-10 12:46 原文

java Swing事件监听器

动作事件监听器ActionListener

  • 添加/删除方法 addActionListener()、removeActionListener()
  • 接口代码实现:
public class DrawListenerFather implements ActionListener{
    //发生动作(按钮被单击、列表框中选择一项)时调用。
    @Override
    public void actionPerformed(ActionEvent e) {
        //具体代码
        System.out.println(e.getActionCommand()+"被单击了");
    }
}

ActionEvent常用的方法:

    e.getActionCommand(); //获取按钮上的字符串;
    JButton btn = (JButton) e.getSource();//获取触发此次事件的组件对象,返回值为Object类型
    color = btn.getBackground();//获取按钮上的颜色;

鼠标事件监听器MouseListener, MouseMotionListener

  • 添加/删除方法 addMouseMotionListener()/removeMouseMotionListener(dl);
    addMouseListener()/removeMouseListener()

  • 接口代码实现:

//前5个方法为MouseListener接口的抽象方法
public class DrawListenerFather implements  MouseListener, MouseMotionListener {

    //鼠标点击组件时触发(按下并释放)
    @Override
    public void mouseClicked(MouseEvent e) {
    
    }
    //鼠标按压组件时触发
    @Override
    public void mousePressed(MouseEvent e) {

    }
    //鼠标松开组件时触发
    @Override
    public void mouseReleased(MouseEvent e) {

    }
    //鼠标进入组件时触发
    @Override
    public void mouseEntered(MouseEvent e) {

    }
    //鼠标离开组件时触发
    @Override
    public void mouseExited(MouseEvent e) {

    }
    
    //鼠标在组件中拖拽时触发
    @Override
    public void mouseDragged(MouseEvent e) {
    
    }
    //鼠标在组件中移动时触发
    @Override
    public void mouseMoved(MouseEvent e) {
        
    }
    
}

MouseEvent常用的方法:

        if(e.getButton==3){//用于流程判断
            //鼠标点击了右键时e.getButton==3
            //鼠标点击了左键键时e.getButton==1
            //鼠标点击了滚轮键时e.getButton==2
        } 
        int x = e.getX();  // 获取当前鼠标的x坐标
        int y = e.getY();  //获取当前鼠标的y坐标

键盘事件监听器KeyListener

由于画图板项目并未涉及到键盘事件监听器,此处省略,日后补充。

监听ChangeEvents的ChangeListener

  • 在画图板项目中,滑动条滑动时触发
  • 添加/删除方法:addChangeListener();/removeChangeListener();
  • 接口接口实现:
public class DrawListenerFather implements  ChangeListener {
    //滑动条滑动时触发
    @Override
    public void stateChanged(ChangeEvent e) {
        //具体代码
    }
}

ChangeEvent常用的方法:

        JSlider jSlider = (JSlider)e.getSource(); //获取触发此次事件的组件对象,返回值为Object类型
        String s = jSlider.getToolTipText(); //获取滑动条的名字
        multiple =  jSlider.getValue(); //读取滑动条当前的数值

推荐阅读