//头文件:导入库(包)中的类(就是后面要用到库里面的方法就能用头文件导入这种方法,使这个类可以调用它)
//有两种
import java.awt.*;
import javax.swing.*;//*表示包含所有的,如要表示具体,如下所示
import java.awt.Dimensions;
/* * 图形化编程:设计带操作界面的应用程序(登录界面) * 组件(相当于零件):窗体,账号/密码输入框,登录/注册按钮,图片 */
public class Login {
//定义显示界面的方法
public void showUI{
//窗体
JFrame jf=new JFrame();//定义JFrame对象才能通过这个对象调动JFrame方法
jf.setSize (450,550);//设置这个窗体的大小,然后单位是像素点
jf.setTitle("登录界面");
jf.setLocationRelativeTo(null);//居中显示
jf.setDefaultCloseOperation(3); //退出进程
//流式布局管理器
FlowLayout flow=new FlowLayout();
//把流氏布局管理器加到窗体里
jf.setLayout(flow);
//加载图片
ImageIcon image = new ImageIcon("D:\\chen\\图片\\1.jpg");
JLabel jla = new JLabel(image);
//把图片夹到窗体里
jf.add(jla);
//提示信息
JLabel user = new JLabel("账号:");
jf.add(user);
//账号输入框(文本框)
JTextField jtf = new JTextField();
//除了JFrame,其它组件设置大小都是该方法
//类本身就是一种数据类型(引用类型/自定义类型)
Dimension dm = new Dimension(370,30);
jtf.setPreferredSize(dm);
jf.add(jtf);
//按钮
JButton jbu = new JButton("登录");
jf.add(jbu);
//设置可见,所有的组件在可见之前添加
jf.setVisible(true);
//监听器
//1.事件源:当前动作所发生的组件(swing)
//2.监听器:动作监听器方法:addActionListener()
//3.绑定事件处理类
//给登录按钮(事件源)添加动作监听器方法
ButtonListener listener = new ButtonListener();
jbu.addActionListener(listener);//绑定事件处理类
//数据类型2:引用类型/自定义类型:类(class) 接口(interface) 数组
//把文本框对象传递到ButtonListener类中
listener.userText = jtf;
}
//主函数
public static void main(String[] args) {
Login lo = new Login();
lo.showUI();
}
}
//ActionListener 的数据类型是接口interface ,接口不能直接创建对象,要重新定义类继承接口,重写接口中的抽象方法,即
import java. awt.*;
import javax.swing.*;
public class ButtonListener implements ActionListener{
//默认注册账号
public String name="123"
//引用传递
public JTextField userText;//保存传递过来的账号框对象
//重写接口中的抽象方法(所有的都要)改;为{
//事件处理方法
public void actionPerformed(ActionEvent e){
//获取输入的账号,密码
String userName = userText.getText();
//验证账号,密码
// == 比较两边的数据是否相等
// 比较字符串内容是否一致必须用equals 方法
// && 与 || 或
if(name.equals(userName)){
System.out.println("yes");
}else{
System.out.println("no");
}
//验证是否正确
System.out.println("点击按钮!userName="+userName);
}
}