通过鼠标移动到按钮上更改背景色案例
import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class FrameDemo3 {
public static void main(String[] args) {
//创建窗体对象
Frame f = new Frame("更改背景色");
//设置属性
f.setBounds(400, 200, 400, 300);
//设置窗体布局为流式布局
f.setLayout(new FlowLayout());
//创建四个按钮
Button redButton = new Button("红色");
Button greenButton = new Button("绿色");
Button blueButton = new Button("蓝色");
//按钮添加到窗体
f.add(redButton);
f.add(greenButton);
f.add(blueButton);
//设置窗体可以关闭
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//对红色按钮添加动作事件监听
// redButton.addActionListener(new ActionListener() {
// @Override
// public void actionPerformed(ActionEvent e) {
// f.setBackground(Color.RED);
// }
// });
//对红色按钮添加鼠标点击事件监听器
redButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
f.setBackground(Color.RED);
}
});
//对红色按钮添加鼠标进入事件监听器
redButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
f.setBackground(Color.RED);
}
});
//对按钮添加鼠标离开事件监听器
redButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseExited(MouseEvent e) {
f.setBackground(Color.WHITE);
}
});
//对绿色按钮添加鼠标进入事件监听器
greenButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
f.setBackground(Color.GREEN);
}
});
//对绿色按钮添加鼠标离开事件监听器
greenButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseExited(MouseEvent e) {
f.setBackground(Color.WHITE);
}
});
//对蓝色按钮添加鼠标进入事件监听器
blueButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
f.setBackground(Color.BLUE);
}
});
//对蓝色按钮添加鼠标离开事件监听器
blueButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseExited(MouseEvent e) {
f.setBackground(Color.WHITE);
}
});
//窗体显示
f.setVisible(true);
}
}
如何控制在文本框里面只能输入数字字符案例
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.WindowAdapter;
import java.awt.event.WindowEvent;
/*
* 输入的如果是非数字字符,就取消键盘录入的效果,需要对文本框添加键盘录入事件的监听器
*/
public class FrameDemo3 {
public static void main(String[] args) {
//创建窗体对象
Frame f = new Frame("不能输入非数字字符");
//设置属性
f.setBounds(400, 200, 400, 300);
//设置窗体布局为流式布局
f.setLayout(new FlowLayout());
//创建组件对象
Label label = new Label("请输入你的QQ号码,不能是非数字,不信你试试");
TextField tf = new TextField(40);
//按组件加到窗体
f.add(label);
f.add(tf);
//设置窗体可以关闭
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//给文本框添加事件
tf.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
//如果取得的字符不是数字字符取消键盘录入事件
//思路:获取字符,判断字符,取消事件(KeyEvent)
//注意:只能取消英文输入法下的非数字输入,中文输入法下依然可以输入非数字
char ch = e.getKeyChar();
if(!(ch>='0'&&ch<='9')){
e.consume(); //取消默认的键盘录入事件
}
}
});
//窗体显示
f.setVisible(true);
}
}
一级菜单案例
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/*
* 需求:一级菜单
*/
public class FrameDemo3 {
public static void main(String[] args) {
//创建窗体对象
Frame f = new Frame("一级菜单");
//设置属性
f.setBounds(400, 200, 400, 300);
//设置窗体布局为流式布局
f.setLayout(new FlowLayout());
//创建菜单栏
MenuBar mb = new MenuBar();
//创建菜单
Menu m = new Menu("文件");
//创建菜单项
MenuItem mi = new MenuItem("退出系统");
m.add(mi);
mb.add(m);
//菜单栏只能通过设置方法进行添加
f.setMenuBar(mb);
//设置窗体可以关闭
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
mi.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
//窗体显示
f.setVisible(true);
}
}
多级菜单案例
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
/*
* 需求:多级菜单
*/
public class FrameDemo3 {
public static void main(String[] args) {
//创建窗体对象
Frame f = new Frame("多级菜单");
//设置属性
f.setBounds(400, 200, 400, 300);
//设置窗体布局为流式布局
f.setLayout(new FlowLayout());
String name = f.getTitle();
//创建菜单栏
MenuBar mb = new MenuBar();
//创建菜单
Menu m1 = new Menu("文件");
Menu m2 = new Menu("更改名称");
//创建菜单项
MenuItem mi1 = new MenuItem("好好学习");
MenuItem mi2 = new MenuItem("天天向上");
MenuItem mi3 = new MenuItem("恢复标题");
MenuItem mi4 = new MenuItem("打开记事本");
MenuItem mi5 = new MenuItem("退出系统");
m2.add(mi1);
m2.add(mi2);
m2.add(mi3);
m1.add(m2);
m1.add(mi4);
m1.add(mi5);
mb.add(m1);
//菜单栏只能通过设置方法进行添加
f.setMenuBar(mb);
//设置窗体可以关闭
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
mi1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
f.setTitle(mi1.getLabel());
}
});
mi2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
f.setTitle(mi2.getLabel());
}
});
mi3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
f.setTitle(name);
}
});
//打开记事本
mi4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Runtime r = Runtime.getRuntime();
try {
r.exec("notepad");
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
mi5.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
//窗体显示
f.setVisible(true);
}
}