图形开发接接口与事件

在与电脑进行交互时一般采用命令接口如Windows 命令处理程序(cmd)或图形接口windows操作系统上的对电脑进行操作的图标;而几乎所有的人使用者的程序的操作都依赖于图形接口。

在java中有一套用于图形开发的开发包分别位于几个包内:java.awt包 ,javax.swing包。这两个包均是jdk开发包下的组件。其中常用的组件大致有3类1.容器组件类:用于向其他组件提供容器,如用户常见到的窗口就是一个容器这个组件在javax swing包中的类为JFrame。在窗口之中我们常见到其他组件如在登录游戏时我们输入账号和密码的空白处分别用JTextField 与JPassword来实现

登录按钮则用JButton类。用JFrame类创建了一个窗口。就需要考虑窗口的大小和窗体的名字等属性对于窗口 其可以可以调用其中的方法·来初始化窗口属性如 setsize(intx,inty)来设置大小而对于JFiled等标签类设置其就要用到辅助类java.awt.Dimension 来设定大小如:

java.awt.Dimension size=new Dimension(intx ,inty)   javax.swing  JFiled a=new JFiled(_size) 这样你用输入账号的大小就为x像素宽 y像素宽高。这样完成一个登陆界面后需要电脑对其的输入的账号密码和点击等信息作出反应就要用到事件机制,当我们在标签类JButton上点击还是需要敲定回车来进入游戏来。此时JBtton为事件源对象用户做点击操作。在其上就调用其类中的事件监听方法addActionListener(ActionListener 1)次方法用与按钮是否有 点击发生于输入组件键盘上是否又键盘回车输入。ActionListener为事件接口所以需要在类中实现。接口中的抽象方法就是事件源用其上的事件监听事件的到时间后第一个实现的方法用来做下一个界面与上一个界面的连接。

 

下面是实现登录界面的2个代码

 

package xxj.interface0616;

import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

//import是引入类的关键字,在此处引入类,那么在此类中使用该引入的类就不需要再写上包名了。
//import的引入是由快捷键,快捷键是:Ctrl+Shift+O

/**
* 1.新建Login登录界面类
*/
public class Login {

/**
* 1.在类中定义主函数
*/
public static void main(String[] args) {
//2.在主函数中,实例化Login类的对象,调用初始化界面的方法
Login login = new Login();
login.initUI();
}
/**
* 1.自定义初始化界面的方法。
*/
public void initUI(){
//3.在初始化界面的方法中,实例化顶级容器JFrame窗体类的对象。
JFrame frame = new JFrame();

//4.设置窗体对象的属性值:大小,标题,关闭操作,显示位置,布局,可见。
frame.setSize(300, 400);//设置窗体的大小,单位是像素
frame.setTitle("Login ");//设置窗体的标题
frame.setDefaultCloseOperation(3);//设置点击关闭按钮时关闭窗体退出程序
frame.setLocationRelativeTo(null);//设置窗体显示在屏幕的中央

//实例化FlowLayout流式布局类的对象
FlowLayout fl = new FlowLayout(FlowLayout.CENTER);
frame.setLayout(fl);//设置容器的布局方式为流式布局

//5.实例化元素组件类的对象,然后将元素组件对象添加到窗体上。
//实例化一个ImageIcon类的对象,用来加载图片到程序中
ImageIcon image = new ImageIcon(this.getClass().getResource("33.png"));
//实例化一个JLabel类的对象,用来显示image图片对象
JLabel labImage = new JLabel(image);
//将labImage添加到frame窗体上
frame.add(labImage);

//实例化一个JLabel类的对象,用来显示文字“账号:”
JLabel labName = new JLabel("账号:");
//将labName添加到frame窗体上
frame.add(labName);

//实例化一个JTextField文本输入框组件类的对象
JTextField textName = new JTextField();

//实例化一个封装组件宽度高度的类
Dimension dim = new Dimension(220,30);
//设置组件的大小
textName.setPreferredSize(dim);

//将textName添加到frame窗体上
frame.add(textName);

//实例化一个按钮类的对象
JButton butLogin = new JButton("登录");
frame.add(butLogin);

frame.setVisible(true);//设置窗体为可见

/**3.在界面类中,实例化LoginListener事件处理类的对象。*/
LoginListener ll = new LoginListener();

/**4.给butLogin事件源对象,添加addActionListener()动作监听方法,指定ActionListener子类的LoginListener参数对象是ll。*/
butLogin.addActionListener(ll);

//2.4将登录窗体frame借给LoginListener类型的参数对象ll
ll.setLogin(frame);

}

}

ackage xxj.interface0616;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;

/**
* 1.ActionListener动作事件接口不实例化对象,所以需要定义类实现该接口.
*
*
*/
public class LoginListener implements ActionListener {

//2.1声明登录窗体对象
private JFrame login ;

//2.2定义一个向其他对象(类)去借这login登录窗体对象的方法
public void setLogin(JFrame lo){
login = lo;//将参数赋给属性
}

/**
* 1.实现接口中的抽象方法(该方法又叫做事件处理方法)。
* @param e是ActionEvent类型的参数对象,该对象中存储事件源相关的信息,比如有:事件源对象上显示的文字或事件源对象。
*/
public void actionPerformed(ActionEvent e){
//2.在实现的事件接口方法中,显示一个新的界面。
JFrame df = new JFrame();
df.setTitle("画图");//设置窗体的标题
df.setSize(600, 500);//设置窗体的大小
df.setLocationRelativeTo(null);//设置窗体显示在屏幕的中央
df.setDefaultCloseOperation(3);//设置关闭窗体
df.setVisible(true);//设置窗体为可见

//2.3关闭登录界面
login.dispose();//dispose()方法是关闭登录窗体的方法
}
}

posted @ 2016-06-23 20:00  腹肌&&背阔肌  阅读(218)  评论(0编辑  收藏  举报