zoukankan      html  css  js  c++  java
  • Java基础 awt Button 鼠标放在按钮上背景颜色改变,鼠标离开背景颜色恢复

    •     JDK :OpenJDK-11
    •      OS :CentOS 7.6.1810
    •      IDE :Eclipse 2019‑03
    • typesetting :Markdown

    code

    package per.jizuiku.gui;
    
    import java.awt.Button;
    import java.awt.Color;
    import java.awt.FlowLayout;
    import java.awt.Frame;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    
    /**
     * @author 给最苦
     * @date 2019/06/30
     * @blog www.cnblogs.com/jizuiku
     */
    public class Demo {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Frame f = new Frame();
    
            // 三原色的数值
            int r = 4;
            int g = 5;
            int b = 70;
            Color bgColor = new Color(r, g, b);
            // 设置背景颜色
            f.setBackground(bgColor);
    
            // 设置窗体布局 - 流式布局
            f.setLayout(new FlowLayout());
    
            Button button = new Button("change bgcolor");
            button.setSize(30, 50);
    
            // 该按钮对鼠标的变化进行监听
            button.addMouseListener(new MouseAdapter() {
                // 使用 alt+ / , 查看 该适配器类下有哪些方法 
                // 然后阅读英文,不会的时候 再去看API和查文献
    
                // 当鼠标进入时
                @Override
                public void mouseEntered(MouseEvent e) {
                    // TODO Auto-generated method stub
                    f.setBackground(Color.BLUE);
                }
    
                // 当鼠标离开时,一切又回到了原点
                @Override
                public void mouseExited(MouseEvent e) {
                    // TODO Auto-generated method stub
                    f.setBackground(bgColor);
                }
    
            });
    
            int width = 400;
            int height = 500;
            f.setSize(width, height);
    
            f.add(button);
            f.setVisible(true);
        }
    
    }
    
    

    result

    sourceCode

    /*
     * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
     * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     *
     * This code is free software; you can redistribute it and/or modify it
     * under the terms of the GNU General Public License version 2 only, as
     * published by the Free Software Foundation.  Oracle designates this
     * particular file as subject to the "Classpath" exception as provided
     * by Oracle in the LICENSE file that accompanied this code.
     *
     * This code is distributed in the hope that it will be useful, but WITHOUT
     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
     * version 2 for more details (a copy is included in the LICENSE file that
     * accompanied this code).
     *
     * You should have received a copy of the GNU General Public License version
     * 2 along with this work; if not, write to the Free Software Foundation,
     * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     *
     * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
     * or visit www.oracle.com if you need additional information or have any
     * questions.
     */
    
    package java.awt.event;
    
    /**
     * An abstract adapter class for receiving mouse events.
     * The methods in this class are empty. This class exists as
     * convenience for creating listener objects.
     * <P>
     * Mouse events let you track when a mouse is pressed, released, clicked,
     * moved, dragged, when it enters a component, when it exits and
     * when a mouse wheel is moved.
     * <P>
     * Extend this class to create a {@code MouseEvent}
     * (including drag and motion events) or/and {@code MouseWheelEvent}
     * listener and override the methods for the events of interest. (If you implement the
     * {@code MouseListener},
     * {@code MouseMotionListener}
     * interface, you have to define all of
     * the methods in it. This abstract class defines null methods for them
     * all, so you can only have to define methods for events you care about.)
     * <P>
     * Create a listener object using the extended class and then register it with
     * a component using the component's {@code addMouseListener}
     * {@code addMouseMotionListener}, {@code addMouseWheelListener}
     * methods.
     * The relevant method in the listener object is invoked  and the {@code MouseEvent}
     * or {@code MouseWheelEvent}  is passed to it in following cases:
     * <ul>
     * <li>when a mouse button is pressed, released, or clicked (pressed and  released)
     * <li>when the mouse cursor enters or exits the component
     * <li>when the mouse wheel rotated, or mouse moved or dragged
     * </ul>
     *
     * @author Carl Quinn
     * @author Andrei Dmitriev
     *
     * @see MouseEvent
     * @see MouseWheelEvent
     * @see MouseListener
     * @see MouseMotionListener
     * @see MouseWheelListener
     * @see <a href="http://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html">Tutorial: Writing a Mouse Listener</a>
     *
     * @since 1.1
     */
    public abstract class MouseAdapter implements MouseListener, MouseWheelListener, MouseMotionListener {
        /**
         * {@inheritDoc}
         */
        public void mouseClicked(MouseEvent e) {}
    
        /**
         * {@inheritDoc}
         */
        public void mousePressed(MouseEvent e) {}
    
        /**
         * {@inheritDoc}
         */
        public void mouseReleased(MouseEvent e) {}
    
        /**
         * {@inheritDoc}
         */
        public void mouseEntered(MouseEvent e) {}
    
        /**
         * {@inheritDoc}
         */
        public void mouseExited(MouseEvent e) {}
    
        /**
         * {@inheritDoc}
         * @since 1.6
         */
        public void mouseWheelMoved(MouseWheelEvent e){}
    
        /**
         * {@inheritDoc}
         * @since 1.6
         */
        public void mouseDragged(MouseEvent e){}
    
        /**
         * {@inheritDoc}
         * @since 1.6
         */
        public void mouseMoved(MouseEvent e){}
    }
    
    

    resource

    • [ JDK ] openjdk.java.net
    • [ doc - 参考 ] docs.oracle.com/en/java/javase/11
    • [ 规范 - 推荐 ] yq.aliyun.com/articles/69327
    • [ 规范 - 推荐 ] google.github.io/styleguide
    • [ 源码 ] hg.openjdk.java.net
    • [ OS ] www.centos.org
    • [ IDE ] www.eclipse.org/downloads/packages
    • [ 平台 ] www.cnblogs.com


    感谢帮助过 给最苦 的人们。
    Java、Groovy和Scala等基于JVM的语言,优秀,值得学习。
    规范的命名和代码格式等,有助于沟通和理解。
    JVM的配置、监控与优化,比较实用,值得学习。

  • 相关阅读:
    Struts2知多少(1) Struts2 MVC架构
    MyBatis知多少(26)MyBatis和Hibernate区别
    MyBatis知多少(26)调试
    MyBatis知多少(25)动态SQL
    MyBatis知多少(24)存储过程
    MyBatis知多少(23)MyBatis结果映射
    MyBatis知多少(22)MyBatis删除操作
    MyBatis知多少(21)更新操作
    MyBatis知多少(20)MyBatis读取操作
    MyBatis知多少(19)MyBatis操作
  • 原文地址:https://www.cnblogs.com/jizuiku/p/11110212.html
Copyright © 2011-2022 走看看