GUI(二)

通过鼠标移动到按钮上更改背景色案例 

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);
		
	}

}

 

发布了33 篇原创文章 · 获赞 1 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/futurech/article/details/86063030
GUI