GUI编程笔记08:GUI通过鼠标移动到按钮上更改背景色案例

首先我们看看源代码如下:

  1 package cn.itcast_06;
  2
  3 import java.awt.Button;
  4 import java.awt.Color;
  5 import java.awt.FlowLayout;
  6 import java.awt.Frame;
  7 import java.awt.event.MouseAdapter;
  8 import java.awt.event.MouseEvent;
  9 import java.awt.event.WindowAdapter;
 10 import java.awt.event.WindowEvent;
 11
 12 public class FrameDemo {
 13     public static void main(String[] args) {
 14         // 创建窗体对象
 15         final Frame f = new Frame("更改背景色");
 16         // 设置窗体属性和布局
 17         f.setBounds(400, 200, 400, 300);
 18         f.setLayout(new FlowLayout());
 19
 20         // 创建四个按钮
 21         Button redButton = new Button("红色");
 22         Button greenButton = new Button("绿色");
 23         Button buleButton = new Button("蓝色");
 24
 25         // 添加按钮
 26         f.add(redButton);
 27         f.add(greenButton);
 28         f.add(buleButton);
 29
 30         // 设置窗体关闭
 31         f.addWindowListener(new WindowAdapter() {
 32             @Override
 33             public void windowClosing(WindowEvent e) {
 34                 System.exit(0);
 35             }
 36         });
 37
 38         // 对按钮添加动作事件,点击按钮
 39         // redButton.addActionListener(new ActionListener() {
 40         // @Override
 41         // public void actionPerformed(ActionEvent e) {
 42         // f.setBackground(Color.RED);
 43         // }
 44         // });
 45
 46         // 对按钮添加鼠标点击事件,鼠标点击按钮,这与上面效果一样
 47         // redButton.addMouseListener(new MouseAdapter() {
 48         // @Override
 49         // public void mouseClicked(MouseEvent e) {
 50         // f.setBackground(Color.RED);
 51         // }
 52         // });
 53
 54         // 对按钮添加鼠标的进入事件,鼠标箭头一旦进入按钮区域,就会触发事件
 55         redButton.addMouseListener(new MouseAdapter() {
 56             @Override
 57             public void mouseEntered(MouseEvent e) {
 58                 f.setBackground(Color.RED);
 59             }
 60         });
 61
 62         redButton.addMouseListener(new MouseAdapter() {
 63             @Override
 64             public void mouseExited(MouseEvent e) {
 65                 f.setBackground(Color.WHITE);
 66             }
 67         });
 68
 69         greenButton.addMouseListener(new MouseAdapter() {
 70             @Override
 71             public void mouseEntered(MouseEvent e) {
 72                 f.setBackground(Color.GREEN);
 73             }
 74         });
 75
 76         greenButton.addMouseListener(new MouseAdapter() {
 77             @Override
 78             public void mouseExited(MouseEvent e) {
 79                 f.setBackground(Color.WHITE);
 80             }
 81         });
 82
 83         buleButton.addMouseListener(new MouseAdapter() {
 84             @Override
 85             public void mouseEntered(MouseEvent e) {
 86                 f.setBackground(Color.BLUE);
 87             }
 88         });
 89
 90         buleButton.addMouseListener(new MouseAdapter() {
 91             @Override
 92             public void mouseExited(MouseEvent e) {
 93                 f.setBackground(Color.WHITE);
 94             }
 95         });
 96
 97         // 设置窗体显示
 98         f.setVisible(true);
 99     }
100 }

运行结果如下:

当我们分别把鼠标放到红色、绿色、蓝色位置上的时候,颜色分别发生如下变化:

时间: 2024-10-25 05:28:42

GUI编程笔记08:GUI通过鼠标移动到按钮上更改背景色案例的相关文章

WPF中当鼠标移到按钮上时,按钮的背景图片消失的问题

如果给按钮设置了背景图片,当鼠标移到按钮上的时候,按钮就好变成一个浅蓝色的按钮,背景图片就消失了,对于这个问题有很多解决方法,我只分享一下我的解决方法. 我第一次用的方式是在按钮中添加一个图片,不用背景来设置. <Button HorizontalAlignment="Left" Margin="179,56.506,0,0" Click="Button_Click" VerticalAlignment="Top" Wi

GUI编程笔记01:GUI和CLI

GUI Graphical User Interface(图形用户接口). 用图形的方式,来显示计算机操作的界面,这样更方便更直观. CLI Command line User Interface (命令行用户接口) 就是常见的Dos命令行操作. 需要记忆一些常用的命令,操作不直观. 举例: 比如:创建文件夹,或者删除文件夹等

GUI编程笔记(java)09:GUI控制文本框只能输入数字字符案例

1.首先我们看看我的需求,如下: 控制文本框只能输入数字字符 2.源代码: package cn.itcast_07; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Label; import java.awt.TextField; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.W

GUI编程笔记(java)10:GUI实现一级菜单

1.首先:菜单组件 MenuBar,Menu,MenuItem              先创建菜单条,再创建菜单,每一个菜单中建立菜单项.              也可以菜单添加到菜单中,作为子菜单.              通过setMenuBar()方法,将菜单添加到Frame中. 2.案例代码: package cn.itcast_08; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Menu;

GUI编程笔记05:GUI事件监听机制原理和举例说明

1.事件监听机制:       A:事件源          事件发生的地方       B:事件             就是要发生的事情       C:事件处理       就是针对发生的事情做出的处理方案       D:事件监听       就是把事件源和事件关联起来 2.举例:人受伤事件. 事件源:人(具体的对象)         Person p1 = new Person("张三");         Person p2 = new Person("李四&qu

GUI编程笔记06:GUI窗体添加按钮并对按钮添加事件案例

1.需求:把按钮添加到窗体,并对按钮添加一个点击事件. 步骤: (1)创建窗体对象(2)创建按钮对象(3)把按钮添加到窗体(4)窗体显示 2.编写程序思路: 窗体布局:窗体中组件的排列方式  布局分类如下: package cn.itcast_04; import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.event.ActionEvent; import java.aw

GUI编程笔记07:GUI把文本框的值移到文本域案例

1.首先我们了解一下我们的需求,如下: 输入“风清扬”,点击“数据转移”,这样的文本会出现到下面的文本域中,这就是我们的需求. 2.代码如下: package cn.itcast_05; import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.TextArea; import java.awt.TextField; import java.awt.event.Action

GUI编程笔记03:GUI的组件继承图

1.组件继承图: 2.分析上面的组件继承图 (1)Component:public abstract class Component extends Object implements ImageObserver, MenuContainer, Serializable component 是一个具有图形表示能力的对象,可在屏幕上显示,并可与用户进行交互.典型图形用户界面中的按钮.复选框和滚动条都是组件示例.component 类是与菜单不相关的 Abstract Window Toolkit

GUI编程笔记02:java.awt和java.swing包的区别

java.awt:(java的标准包)             Abstract Window ToolKit (抽象窗口工具包),需要调用本地系统方法实现功能.属重量级控件.重量级控件和本地系统相关联,移植性很差. javax.swing:(javax表示:java的扩展包)            在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现.增强了移植性,属轻量级控件.