Java学习 之 登录界面与接口 动作监听器

登录界面

开发包
awt : 早期的java 界面开发包 ,保留一些元素等日常使用的类;
swing : 后期稍微优化了的一些组件包;
界面内容
顶级容器: 像 JFrame Frame Window 这些;
(一个界面程序最外部底层的窗体)
容器: 面板 JPanel
(需要添加到顶级容器上,其余的组件都需要添加到一个容器上);
组件: 按钮 输入框 等一些自带功能的组件 ;
元素: 颜色 布局器 尺寸;

界面开发所需 API 类

import java.awt.Color;      //颜色
import java.awt.Dimension;      //尺寸
import java.awt.FlowLayout;    //流式布局器 
import javax.swing.JFrame;     //窗体
import javax.swing.ImageIcon;    //图片
import javax.swing.JButton;     //按钮
import javax.swing.JCheckBox;    //复选框
import javax.swing.JLabel;     //标签 (图片/文字/无)
import javax.swing.JPasswordField;   //密码输入框
import javax.swing.JTextField;    //文本输入框

使用方法

第一步: 实例化这个组件的对象
第二部: 给这个对象设置属性
第三步: 将这个对象添加其所属位置

初始化窗体方法

//实例化窗体对象
public class LoginU {

//主函数调用
public static void main(String args[]){
  LoginU lgu=new LoginU();
  lgu.initUI();
  }

//初始化窗体的方法
public void initUI(){
  JFrame lgjf=new JFrame();
  lgjf.setTitle("QQ登录");
  lgjf.setSize(400, 400);

  //设置进程关闭
  lgjf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  //设置居中显示
  lgjf.setLocationRelativeTo(null);
  //设置窗体不可改变大小
  lgjf.setResizable(false);
  //流式布局器
  FlowLayout fl=new FlowLayout();
  lgjf.setLayout(fl);
  //可视,默认false,写在全部组件创建完成后
  lgjf.setVisible(true);

布局器 : 一般设置给窗体或者面板,来控制组件摆放的位置;
流式布局器: FlowLayout
(当一行组件摆放不下时切换到第二行,居中,从上至下 );
给容器设置布局: 容器对象.setLayout(布局器对象参数);

创建组件

//创建组件
  //图片
  ImageIcon image=new ImageIcon("D:\\Java\\JavaCode\\JavaStu\\src\\LoginU\\QQ.PNG");
  JLabel imJla=new JLabel(image);
  //标签
  JLabel nameJla=new JLabel("账号: ");
  JLabel pwdJla=new JLabel("密码: ");
  //文本输入框
  JTextField namein=new JTextField();
  //密码输入框
  JPasswordField pwdin=new JPasswordField();
  //按钮
  JButton lgbtn=new JButton("登录");
  //选择框
  JCheckBox lgJcb=new JCheckBox("自动登录");
  JCheckBox pwdJcb=new JCheckBox("记住密码");
  
  JLabel fpwdJla=new JLabel("找回密码");
  JButton zcbtn=new JButton("注册账号");

ImageIcon: 图片类 并不是一个组件,需要实例化后把它依托在JLabel上;

设置组件属性

//设置组件属性
  //输入框尺寸设置
  Dimension indim=new Dimension(330,30);
  namein.setPreferredSize(indim);
  pwdin.setPreferredSize(indim);
  //标签背景颜色
  lgbtn.setBackground(new Color(100,180,255));
  //标签尺寸设置
  Dimension lgDim=new Dimension(300,30);
  lgbtn.setPreferredSize(lgDim);

Dimension: 尺寸
实例化:Dimension dim = new Dimension(800,600);
设置组件尺寸: namein.setPreferredSize(indim);

在界面上添加组件

//添加组件
  lgjf.add(imJla);
  lgjf.add(nameJla);
  lgjf.add(namein);
  lgjf.add(pwdJla);
  lgjf.add(pwdin);
  lgjf.add(lgJcb);
  lgjf.add(pwdJcb);
  lgjf.add(fpwdJla);
  lgjf.add(lgbtn);
  lgjf.add(zcbtn);

运行效果

做好了嗷呜

监听器

事件与接口

接口: 声明关键字 interface

  • 接口不能声明变量和带有方法体的方法
  • 接口不能实例化对象
  • 接口可以多实现
    (一个类可以实现多个接口,但只能继承一个类)

接口使用方法

关键字:implements
格式: 实现接口的类 implements 接口名
一个类去实现这个接口需要重写这个接口中的所有抽象方法

动作监听器(ActionListener)

可以监听 按钮 菜单 之类的组件

使用方法

  • 使用一个类去实现这个监听器
  • 实例化这个监听类的对象
  • 组件直接添加监听器
    使用:组件名.add监听器类型(实现了监听器接口的类的对象);
  • 将需要的界面上的对象传入监听器
  • 在监听器重载的方法中实现监听到相应操作之后需要执行的代码

用接口实现监听器类

public class LoginUIListener implements ActionListener{
//声明接收的输入框对象
 JTextField namein;
 JPasswordField pwdin;
 JFrame lgjf;
 JFrame lgjfnew;

//按钮被点击时自动调用
  public void actionPerformed(ActionEvent e){
  //获取按键内容
  String btnstr= e.getActionCommand();
  //如果按下登录键
  if(btnstr.equals("登录")){
  //获得输入框中的内容
    String name=namein.getText();
       String pwd=pwdin.getText();
  //登陆成功
  if(name.equals("12345")&&pwd.equals("12345")){
    System.out.println("登陆成功");
    //关掉登录页面
    lgjf.setVisible(false);
  }
}
}

取到输入框中的字符串:输入框对象.getText();

登录界面添加动作监听器

//实例化监听器对象
  LoginUIListener ll=new LoginUIListener();
  //给按钮加上监听器
  lgbtn.addActionListener(ll);//登录按钮添加监听器
  zcbtn.addActionListener(ll);//注册按钮添加监听器
  //将输入框对象传入监听器类中 
  ll.lgjf=lgjf;//界面窗体
  ll.namein=namein;//文本输入框
  ll.pwdin=pwdin;//密码输入框

Over!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值