java第七次作业

(一)学习总结

1.写出事件处理模型中的几个关键词,并通过具体代码实例说明你对事件处理模型的理解。
事件就是表示一个对象的发生状态变化。
基本事件及其监听处理:
窗体事件及监听处理:使用匿名内部类完成监听操作

import java.awt.event.WindowAdapter ;
import java.awt.event.WindowEvent ;
import java.awt.Color ;
import javax.swing.JFrame ;
public class MyEventWindowEventJFrame03{
	public static void main(String args[]){
		JFrame frame = new JFrame("Welcome To MLDN") ; 
		frame.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.out.println("windowClosing --> 窗口关闭") ;
				System.exit(1) ;
			}
		}) ;	// 加入事件
		frame.setSize(300,150) ;
		frame.setBackground(Color.WHITE) ;
		frame.setLocation(300,200) ;
		frame.setVisible(true) ;
	}
};

动作事件及监听处理

import java.awt.event.WindowAdapter ;
import java.awt.event.ActionListener ;
import java.awt.event.WindowEvent ;
import java.awt.event.ActionEvent ;
import java.awt.Color ;
import java.awt.GridLayout ;
import java.awt.Font ;
import javax.swing.JFrame ;
import javax.swing.JButton ;
import javax.swing.JLabel ;
import javax.swing.JTextField ;
import javax.swing.JPasswordField ;
import javax.swing.JPanel ;

class LoginCheck{
	private String name ;
	private String password ;
	public LoginCheck(String name,String password){
		this.name = name ;
		this.password = password ;
	}
	public boolean validate(){
		if("lixinghua".equals(name)&&"mldn".equals(password)){
			return true ;
		}else{
			return false ;
		}
	}
};

class ActionHandle{
	private JFrame frame = new JFrame("Welcome To MLDN") ; 
	private JButton submit = new JButton("登陆");
	private JButton reset = new JButton("重置");
	private JLabel nameLab = new JLabel("用户名:") ;
	private JLabel passLab = new JLabel("密   码:") ;
	private JLabel infoLab = new JLabel("用户登陆系统") ;
	private JTextField nameText = new JTextField(10) ;
	private JPasswordField passText = new JPasswordField() ;
	private JPanel pan = new JPanel() ;
	public ActionHandle(){
		Font fnt = new Font("Serief",Font.ITALIC + Font.BOLD,12) ;
		infoLab.setFont(fnt) ;	// 设置标签的显示文字
		submit.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				if(e.getSource()==submit){
					String tname = nameText.getText() ;
					String tpass = new String(passText.getPassword()) ;
					LoginCheck log = new LoginCheck(tname,tpass) ;
					if(log.validate()){
						infoLab.setText("登陆成功,欢迎光临!") ;
					}else{
						infoLab.setText("登陆失败,错误的用户名或密码!") ;
					}
				}
			}
		}) 
		reset.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				if(e.getSource()==reset){
					nameText.setText("") ;
					passText.setText("") ;
					infoLab.setText("用户登陆系统") ;
				}
			}
		}) 
		
		frame.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(1) ;
			}
		}) 	// 加入事件
		frame.setLayout(null) ;
		nameLab.setBounds(5,5,60,20) ;
		passLab.setBounds(5,30,60,20) ;
		infoLab.setBounds(5,65,220,30) ;
		nameText.setBounds(65,5,100,20) ;
		passText.setBounds(65,30,100,20) ;
		submit.setBounds(165,5,60,20) ;
		reset.setBounds(165,30,60,20) ;
		frame.add(nameLab) ;
		frame.add(passLab) ;
		frame.add(infoLab) ;
		frame.add(nameText) ;
		frame.add(passText) ;
		frame.add(submit) ;
		frame.add(reset) ;
		frame.setSize(280,130) ;
		frame.setBackground(Color.WHITE) ;
		frame.setLocation(300,200) ;
		frame.setVisible(true) ;

	}
}

public class MyActionEventDemo03{
	public static void main(String args[]){
		 new ActionHandle() ;
		
	}
}

键盘事件及监听处理

import java.awt.event.WindowAdapter ;
import java.awt.event.KeyAdapter ;
import java.awt.event.WindowEvent ;
import java.awt.event.KeyEvent ;
import java.awt.Color ;
import javax.swing.JFrame ;
import java.awt.event.ActionListener ;
import java.awt.event.WindowEvent ;
import java.awt.event.ActionEvent ;
import java.awt.Color ;
import java.awt.GridLayout ;
import java.awt.Font ;
import javax.swing.JFrame ;
import javax.swing.JButton ;
import javax.swing.JLabel ;
import javax.swing.JTextArea ;
import javax.swing.JPasswordField ;
import javax.swing.JScrollPane ;
import javax.swing.JPanel ;

class MyKeyHandle extends JFrame{
	private JTextArea text = new JTextArea() ;
	public MyKeyHandle(){
		super.setTitle("Welcome To MLDN") ;
		JScrollPane scr = new JScrollPane(text) ;
		scr.setBounds(5,5,300,200) ;
		super.add(scr) ;
		text.addKeyListener(new KeyAdapter(){
			public void keyTyped(KeyEvent e){
				text.append("输入的内容是:" + e.getKeyChar() + "
") ;
			} 
		}) ;
		super.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(1) ;
			}
		}) ;	// 加入事件
		super.setSize(310,210) ;
		super.setVisible(true) ;
	}
	
};


public class MyKeyEventDemo02{
	public static void main(String args[]){
		new MyKeyHandle() ;
	}
};

鼠标事件及监听处理

import java.awt.event.WindowAdapter ;
import java.awt.event.MouseAdapter ;
import java.awt.event.WindowEvent ;
import java.awt.event.MouseEvent ;
import java.awt.Color ;
import javax.swing.JFrame ;
import java.awt.event.ActionListener ;
import java.awt.event.WindowEvent ;
import java.awt.event.ActionEvent ;
import java.awt.Color ;
import java.awt.GridLayout ;
import java.awt.Font ;
import javax.swing.JFrame ;
import javax.swing.JButton ;
import javax.swing.JLabel ;
import javax.swing.JTextArea ;
import javax.swing.JPasswordField ;
import javax.swing.JScrollPane ;
import javax.swing.JPanel ;

class MyMouseHandle extends JFrame{
	private JTextArea text = new JTextArea() ;
	public MyMouseHandle(){
		super.setTitle("Welcome To MLDN") ;
		JScrollPane scr = new JScrollPane(text) ;
		scr.setBounds(5,5,300,200) ;
		super.add(scr) ;
		text.addMouseListener(new MouseAdapter(){
			public void mouseClicked(MouseEvent e){
				int c = e.getButton() ;
				String mouseInfo = null ;
				if(c==MouseEvent.BUTTON1){
					mouseInfo = "左键" ;
				}
				if(c==MouseEvent.BUTTON3){
					mouseInfo = "右键" ;
				}
				if(c==MouseEvent.BUTTON2){
					mouseInfo = "滚轴" ;
				}
				text.append("鼠标单击:" + mouseInfo + "
") ;
			}
		}) ;
		super.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(1) ;
			}
		}) ;	// 加入事件
		super.setSize(310,210) ;
		super.setVisible(true) ;
	}
};


public class MyMouseEventDemo02{
	public static void main(String args[]){
		new MyMouseHandle() ;
	}
};

鼠标拖拽事件及监听处理

import java.awt.event.WindowAdapter ;
import java.awt.event.MouseMotionAdapter ;
import java.awt.event.WindowEvent ;
import java.awt.event.MouseEvent ;
import java.awt.Color ;
import javax.swing.JFrame ;
import java.awt.event.ActionListener ;
import java.awt.event.WindowEvent ;
import java.awt.event.ActionEvent ;
import java.awt.Color ;
import java.awt.GridLayout ;
import java.awt.Font ;
import javax.swing.JFrame ;
import javax.swing.JButton ;
import javax.swing.JLabel ;
import javax.swing.JTextArea ;
import javax.swing.JPasswordField ;
import javax.swing.JScrollPane ;
import javax.swing.JPanel ;

class MyMouseMotionHandle extends JFrame{
	public MyMouseMotionHandle(){
		super.setTitle("Welcome To MLDN") ;
		super.addMouseMotionListener(new MouseMotionAdapter(){
			public void mouseDragged(MouseEvent e){
				System.out.println("鼠标拖拽到:X = " + e.getX() + ",Y = " + e.getY()) ;
			}
		}) ;
		super.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(1) ;
			}
		}) ;	// 加入事件
		super.setSize(310,210) ;
		super.setVisible(true) ;
	}
};


public class MyMouseMotionEventDemo02{
	public static void main(String args[]){
		new MyMouseMotionHandle() ;
	}
};

2.其他需要总结的内容。
每个事件处理机制都有其方法完成操作,查看及使用api文档掌握操作

(二)实验总结

实验内容:
基本要求:
使用GUI,编写一个宠物商店管理系统实现对宠物信息的统一管理。假设宠物种类有猫、狗,宠物信息包括:编号、品种、年龄、数量、价格。系统启动进入登录界面,登录成功进入管理界面,否则提出错误信息后退出系统。
在管理界面实现以下功能:
(1)显示所有宠物列表
(2)添加宠物到列表
(3)删除宠物
(4)对宠物信息进行修改
(5)退出
程序设计思路:根据老师给出的代码,理解其内容,做出相应的修改,完成宠物商店界面的设置

(三)代码托管

链接:https://git.oschina.net/hebau_cs15/java-cs02sqrr.git

原文地址:https://www.cnblogs.com/namtaehyun/p/6829581.html