package hh; //创建一个java项目,名字为hh
import java.awt.*;//引入java接口
import javax.swing.*;//引入java接口
import java.awt.Event.*;//引入java接口
import java.awt.event.ActionEvent;//引入java接口
import java.awt.event.ActionListener;//引入java接口
public class LoadIn extends JFrame implements ActionListener {//创建类LoadIn继承于类JFrame,实现接口ActionListener
JPanel loginPan;//定义变量
JButton btnLogin,btnExit;//定义登录按钮和退出按钮
JLabel lblUser,lblPassword,lblLogo;//定义变量
JTextField txtUser;//定义变量
JPasswordField pwdPasssword;//定义变量
Dimension daSize;//定义变量
Toolkit toolkit=Toolkit.getDefaultToolkit();
public LoadIn(){//定义构造方法
super("登录界面");//设置界面标题
loginPan=new JPanel();//定义容器并添加到界面中
this.getContentPane().add(loginPan);
lblUser=new JLabel("用户名:");//定义用户名
lblPassword=new JLabel("密码:");//定义密码
txtUser=new JTextField(20);//定义文本框
pwdPasssword=new JPasswordField(20);//定义密码框
btnLogin=new JButton("确定");//定义确定按钮
btnExit=new JButton("取消");//定义退出按钮
btnLogin.addActionListener(this);//给确定按钮添加方法
btnExit.addActionListener(this);//给退出按钮添加方法
Font fontstr=new Font("宋体",Font.PLAIN,13);//设置文本格式
lblUser.setFont(fontstr);
txtUser.setFont(fontstr);
lblPassword.setFont(fontstr);
pwdPasssword.setFont(fontstr);
btnLogin.setFont(fontstr);
btnExit.setFont(fontstr);
lblUser.setForeground(Color.BLACK);//定义颜色
lblPassword.setForeground(Color.BLACK);//定义颜色
btnLogin.setForeground(Color.BLACK);//定义颜色
btnExit.setForeground(Color.BLACK);//定义颜色
loginPan.add(lblUser);//将组件添加到容器中
loginPan.add(txtUser);//将组件添加到容器中
loginPan.add(lblPassword);//将组件添加到容器中
loginPan.add(pwdPasssword);//将组件添加到容器中
loginPan.add(btnLogin);//将组件添加到容器中
loginPan.add(btnExit);//将组件添加到容器中
loginPan.setLayout(null);//采用null布局
lblUser.setBounds(30,10,60,25);//设置组件在容器中的位置
lblPassword.setBounds(30,40,60,25);//设置组件在容器中的位置
txtUser.setBounds(80,10,150,25);//设置组件在容器中的位置
pwdPasssword.setBounds(80,40,150,25);//设置组件在容器中的位置
btnLogin.setBounds(40,80,80,25);//设置组件在容器中的位置
btnExit.setBounds(140,80,80,25);//设置组件在容器中的位置
setResizable(false);
setSize(280,150);//设置界面的大小
setVisible(true);//设置界面的可见性
}
public void actionPerformed(ActionEvent ae){//判断输入的用户名和密码是否正确
if(ae.getSource()==btnLogin){
if((txtUser.getText().equals("user"))&&(pwdPasssword.equals("user"))){
JOptionPane.showMessageDialog(null, "登录成功!");
}
else
JOptionPane.showMessageDialog(null,"用户名或密码错误!");
}
if(ae.getSource()==btnExit)
System.exit(0);
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
LoadIn load=new LoadIn();//为 LoadIn创建一个对象load
}
}
1.知识点分析:1)事件处理:事件是用户对程序某一种功能的操作。而
事件处理需要注意一下3个方面:一.事件产生来源(source)。
二.要处理什么事件。三.编写事件处理程序。
2)KeyEvent:KeyEvent实现对键盘事件的处理,它是InputEvent的一个子类。
显示的输入时登录界面为:
显示输出时登录界面为:
2.运行结果分析:本程序创建了标题为“登录界面”的图形用户界面,在界面中添加了布局方式为NULL的容器,并在容器中添加了标签(JLabel):用户名、密码、文本框(JTexField)、密码框(JPasswordField)、“确定”按钮和“取消”按钮(JButton).同时,为按钮添加监听器,单击“确定”按钮时,如果输入的用户名和密码不正确的话,则弹出“用户名或密码错误!”的对话框。单击“取消”按钮时。则关闭当前图形用户界面。
3.心得体会:首先,在这次任务中学会了怎么样创建类来继承JFrame,实现接口ActionListener(事件监听器);懂得了定义容器,并在容器中添加标签,学会了采用NULL布局,其次,学会了设置界面的标题:那就是在创建的类的方法下用super()括号里面的内容是什么,那么,界面的标题就是什么。还学会了,如果要把组件添加到容器中时用组件.add()括号中加入要添加的标签就可以了;也明白了怎么样设置界面的大小、可见性、是否可改变大小,分别为:setSize()括号加入要设置的界面的大小,setVisible()括号中可以加入false/true,false表示界面不可见,而true表示界面可见,setResizeable()括号中可以加入false/true,,false表示界面大小不可以改变,只能是用户设置好的界面的大小,而,true表示界面大小可以改变用户设置的界面大小。没有学不会的程序,只有不努力学习程序的人。