Java界面的实现与事件监听

我们来做一个这样的登录界面(Eclipse)

在这里插入图片描述

先创建一个类,准备好一写需要的包

import javax.swing.JPasswordField;
import javax.swing.JTextField;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
然后new一个界面,写好大概的窗体属性

程序入口

public  static void main(String[] args)
  {
   Denglu lg = new Denglu();
   lg.showUI();
  }
public void showUI() {
   //JFrame 的使用
   JFrame jf = new JFrame();
   //给窗体设置相关属性
   jf.setTitle("中国象棋登录界面");
   jf.setSize(400,400);
   jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 进程关闭
   jf.setLocationRelativeTo(null);//居中显示
   jf.setResizable(false);//设置是否可以改变尺寸,写true就可以改变尺寸了

写这个jf.setDefaultCloseOperation(3);也是等价的

组件的创造
  //组件布局
   //流式布局
   FlowLayout fl = new FlowLayout();
   jf.setLayout(fl);
   //尺寸
   Dimension  dim = new Dimension(330,30);//后面直接用
   //组件创建
   ImageIcon topim= new ImageIcon("C:\\Users\\86153\\Desktop\\Chinesechess.png");
   //图片标签
   JLabel imjla = new JLabel(topim);
   //文字标签
   JLabel namejla = new JLabel("账号:");
   JLabel pwdjla = new JLabel("密码:");
   JButton btn1 = new JButton("登录");
   JButton btn2 = new JButton("快速注册");
   //输入框
   JTextField namejtx = new JTextField();//文本输入框
   JPasswordField pwdin  = new JPasswordField();//密码输入框
   //复选框
   JCheckBox  jBox = new JCheckBox("记住密码 ");

插入的图片是直接放在桌面的,只要记住地址,写上去就可以了 ImageIcon topim= new ImageIcon(“C:\Users\86153\Desktop\Chinesechess.png”);
名字随便怎么写,建议写的易于辨认一点

设置组件的颜色,文本框的大小尺寸
//组件的设置
   btn1.setBackground(Color.CYAN);
   btn2.setBackground(Color.CYAN);
   namejtx.setPreferredSize(dim);
   pwdin.setPreferredSize(dim);
最后就是把你辛辛苦苦写的东西都加在界面上,并记得可视化哦
 //添加组件到对应容器上
   jf.add(imjla);
   jf.add(namejla);
   jf.add(namejtx);
   jf.add(pwdjla);
   jf.add(pwdin);
   jf.add(jBox);
   jf.add(btn1);
   jf.add(btn2);
   jf.setVisible(true);//可视化

事件监听

   //实例化实现了动作监听器接口的类的对象
   LoginListener  ll = new LoginListener();
   
   //给按钮添加动作监听器
   btn1.addActionListener(ll);
   btn2.addActionListener(ll);

记得把界面传过去

   ll.namein=namejtx;
   ll.pwdin=pwdin;
   ll.jf=jf;
下一步,写监听器(一个新的类)
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import Pad_3D.Huatu1;
import Pad_3D.Zhuce;

接口关键字 —implements
其格式:public class 类名 implements 接口名{ } ,
其中不能创建带有具体方法体的方法。

public class LoginListener implements ActionListener{

    public JTextField namein;
           JPasswordField pwdin;
           JFrame jf;//点击按钮时自动调用

重载

 public void actionPerformed(ActionEvent e) {
    
    String btnstr = e.getActionCommand();

切换到下一个界面:登录或者注册

 if(btnstr.equals("登录")){
   if( namein.getText().equals("123")&&pwdin.getText().equals("456")) {
    System.out.println("账号密码正确");
    Huatu1 ht =new Huatu1();
    ht.initUI();
    jf.setVisible(true);
    }else {
    System.out.println("账号密码错误");
    }   }
    else if(btnstr.equals("快速注册")){
     Zhuce zc =new Zhuce();
     zc.initUI();
     jf.setVisible(true);
     
    System.out.println("按钮被点击了 ==  "+ btnstr);
    
    }

展示一下注册的代码吧

import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Zhuce extends JFrame{
 public void initUI() {
  this.setTitle("快速注册");
  this.setSize(400,150);
  this.setDefaultCloseOperation(2);
  JLabel namesjh = new JLabel("手机号:");
  JLabel nameqsryzm = new JLabel("请输入验证码:");
  FlowLayout fl = new FlowLayout();
  this.setLayout(fl);
  Dimension  dim1 = new Dimension(300,30);
  Dimension  dim2 = new Dimension(160,30);
  JTextField namesjhm = new JTextField();//文本输入框
  JTextField nameyzm = new JTextField();
  JButton btn12 = new JButton("获取验证码");
  btn12.setBackground(Color.WHITE);
  namesjhm.setPreferredSize(dim1);
  nameyzm.setPreferredSize(dim2);
  btn12.setBackground(Color.ORANGE);
  this.add(namesjh);
  this.add(namesjhm);
  this.add(nameqsryzm);
  this.add(nameyzm);
  this.add(btn12);
  
  this.setVisible(true);
  }    
 public static void main(String[] args) {
  
  Zhuce zhuce1 = new Zhuce();
  zhuce1.initUI();
      }
  }
点注册

在这里插入图片描述

点登录之后的展示有点简陋就不展示了…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值