图形用户界面是一组图形界面成分和界面元素的有机组合。这些成分和元素之间不仅外观上有包含、相邻、相交等物理关系,内在的也包含、调用等逻辑关系。他们相互作用,传递消息,共同组成一个能响应特定事件的、具有一定功能的图形界面系统。
设计和实现图形用户界面的工作主要有两个:一是创建组成界面的各种元素和成分,指定他们的属性和位置关系,根据具体需要对其进行排列,从而构成完整的图形用户界面的物理外观。二是定义图形用户的事件和个界面元素对应的不同的事件响应,从而实现图形用户界面和用户之间的交互。
Swing概述
既是Java编译库中提供的javax.Swing包,其被列入Java的基础JFC中,其中定义了比java.awt包更多的更强的功能。使得设计者能够更灵活更方便的进行图形用户界面的设计。
基本界面实现需要使用的组件?
JFrame(窗体构建)
FlowLayout(流式布局组建,对元素进行布局)
JButton(按钮组建)
JLable(标签组件)
如下代码就是构造了一个简单的界面:
//construct a interface
JFrame frame=new JFrame();
//设置标题
frame.setTitle("First Interface Program!");
//need to set up a arrangement supervisor before placing factor
//set up a flow layout supervisor object
FlowLayout fl=new FlowLayout();
frame.setLayout(fl);
JLabel notice_name=new JLabel(" 请输入您的登录账号和通行密码 !");
frame.add(notice_name);
//set a sign-factor
//set name
JLabel la_name=new JLabel("Name:");
frame.add(la_name);
JTextField jta_name=new JTextField(12);
frame.add(jta_name);
//set password
JLabel key_name=new JLabel("Pass: ");
frame.add(key_name);
JTextField key2_name=new JTextField(12);
frame.add(key2_name);
JButton bu_login=new JButton("Login");
frame.add(bu_login);
JButton bu_register=new JButton("register");
frame.add(bu_register);
//设置窗体大小
frame.setSize(200, 200);
frame.setDefaultCloseOperation(2);
//让窗体显示出来
frame.setVisible(true);
事件:事件代表了某对象可以执行的操作及状态。整个事件的过程由产生事件的对象(事件源)和事件对象(事件接口)以及监听者(事件监听器)对象之间组成。
事件的执行流程:
当使用者在事件源上发生动作时,动作会激活事件监听器方法,事件监听器方法会收集事件源的信息,自动
调用监听器方法中的对象参数的事件处理方法;执行事件处理方法中的代码,完成整个事件的操作。
事件源:只有组件才可以成为事件源对象。例如:鼠标按下和释放的动作是相应在JFrame窗体组件上。事件源是创建的画板窗体对象。
事件监听器方法:监听器方法的作用就是:捕获什么样的动作。例如:addMouseListener(MouseListener ml); 鼠标按下,鼠标释放,鼠标单击,鼠标进入,鼠标离开这些动作都可被监听器方法捕捉到,并作出相应的反应。
事件接口:例如MouseListener 就是鼠标事件接口,接口不允许创建对象。定义一个类实现接口,必须要实现接口中所有的抽象方法。
Java中存在许多种类事件
下面说一下ActionEvent事件
1.动作事件
ActionEvent类含有ACTION_PERFORMED事件,它是引发某个动作的执行事件。能触发这个事件的动作包括:单击按钮;双击一个列表中的选项;选择菜单项或者在文本框中输入回车等。
2.ActionEvent类中可用的主要方法:
getSource()方法:用来获取引发事件的对象名。
getActionCommand()方法:用来获取对象的标签或者事先为这个对象设置的对象名。例如对谋按钮添加了动作监听器,使用该方法可以获得按钮上的文字。
3.事件响应
当用户点击对象的时候,就会引发ActionEvent类代表的动作事件。如:对象名.addActionListener(this);
该语句注册事件源对象的监听者对象为this,而且要求this对象的类必须声明该类并且并实现ActionListener接口。方事件发生时引发的事件将被事件的监听器监听到,并且引用ActionListener的ActionPerfromed(ActionEvent e)方法响应事件的动作。