基于java界面开发讲一讲事件监听器

界面

什么是界面?

界面,指的是呈现在用户面前吗,显示器屏幕上的图形状态。比如我们常用到的登录界面,对话框等

界面开发相关基础知识

类与对象的创建

  1. 关键字:new

  1. 语法格式:类名 对象名=new 类名();//类名不能用到java本身的关键字,类名对象名多采用驼峰式命名

3.用对象调用方法:对象名.方法名();//如果设置了参数,括号内写入参数数据

指界面开发要用的包,这里用到的都是java的源码包

界面开发包:

  • java.awt

包含内容:尺寸类(Dimension),流式布局类(FlowLayout),颜色类(Color),字体类(Font)

  • javax.swing

包含内容:窗体类(JFrame),按钮类(JButton),标签类(JLabel),文本输入框类(JTextField),密码输入框类(JTextField)

界面开发步骤

  1. 创建⼀个自己的类 LoginUI 用来写代码,并事先导入合适的包

  1. 在类中创建⼀个方法initUI() 创建界面的代码都写在这个方法中,然后调用方法就可以了

  1. 在方法中,将以上所有的类创建对象

package com.zx0222;//先导入界面开发要用到的包,这里是自己命名的包
import javax.swing.*;
import java.awt.*;
//创建类名
public class LoginUI {
    LoginListener login1=new LoginListener();//LoginListener是后续事件监听器要到的类,下文会有介绍
    //创建要执行的方法
    public void initUI(){
        //创建窗体对象并设置其属性
        
  1. 设置窗体对象的属性: 标题尺寸关闭操作布局可视化

  1. 设置按钮以及文字标签的文本

  1. 设置输入框的尺寸Dimension

  1. 使用窗体对象调用add方法添加标签、输入框和按钮

        JFrame jf=new JFrame();
        jf.setTitle("登录界面");
        jf.setSize(500,300);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //创建布局对象flow,并设置属性
        FlowLayout flow=new FlowLayout();
        jf.setLayout(flow);
        JTextField textIn=new JTextField();
        JTextField textOut=new JTextField();
        Dimension dimension=new Dimension();
        dimension.setSize(150,30);
        textIn.setPreferredSize(dimension);
        textOut.setPreferredSize(dimension);
        //创建组件对象btn,并设置属性
        JButton btn=new JButton();
        btn.setText("登录");
        //窗体对象添加组件对象
        jf.add(textIn);
        jf.add(btn);
        jf.add(textOut);
        btn.addActionListener(login1);//在方法中使用按钮对象,来调用addActionListener
        jf.setVisible(true);//设置输入框为可见
        //传输入框对象的引用给监听器对象中的两个输入框变量
        login1.textIn1=textIn;
        login1.textOut1=textOut;
  1. 在类中创建一个主函数,创建LoginUI对象,并调用initUI方法

public static void main(String[] args){
        LoginUI loginui=new LoginUI();//创建LoginUI的对象
        loginui.initUI();//对这个对象调用intiUI方法
}

事件监听器

什么是事件监听器?

事件监听器是由事件类和监听接口组成,是为了事先上文代码之后,我们点击按钮后可以调用自己写的代码,即点击按钮来实现新的功能

事件监听器开发步骤

  1. 导入符合要求的包

  1. 另创建一个新的类,并在这个类中使用"implements"实现另一个java程序自带的类,即ActionListener

package com.zx0222;
import javax.swing.*;
import java.awt.event.ActionListener;//导入ActionListener所在的包路径
import java.awt.event.ActionEvent;
import java.util.Random;//这里导入的是Random所在的包路径,体现在后续的猜数字游戏代码

//创建LoginListener这个类,并准备在这个类中实现ActionListener
public class LoginListener implements ActionListener {
  1. 在类中使用LoginUI类中已经创建的对象

package com.zx0222;
//事先导入ActionListener的包

import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.Random;
//创建LoginListener这个类,并准备在这个类中实现ActionListener
public class LoginListener implements ActionListener {
    public JTextField textIn1;
    public JTextField textOut1;//用到的是之前LoginUI类中设置好的文本输入框的对象
  1. 下面这里是猜数字游戏代码,读者可以先不用太关注这里的代码逻辑,重点理解界面开发到事件监听器的开发思路,整体框架

 public void actionPerformed(ActionEvent e){
        if(count==0){
            count=new Random().nextInt(99)+1;//为了实现1-100
            min=0;
            max=100;
        }
      System.out.println("按钮被点击");
      String text=textIn1.getText();//为了获取输入框中的内容
        textOut1.setText(text);
        int num=Integer.parseInt(text);
        if(num<=min||num>=max){
            textOut1.setText("猜对了,答案是"+count+"请继续下一局");
            System.out.println("猜对了");
            count=0;
            return;
        }else{
            if (num < count) {
                textOut1.setText("没猜中现在是"+num+"--"+max);
                System.out.println ("没猜中现在是 " + min + "--" + num);
                min = num;
            } else if(num > count){
                textOut1.setText ("没猜中现在是 " + min + "--" + num);
                System.out.println ("没猜中现在是 " + min + "--" + num);
                max = num;

            }
            return;
        }

    }

效果呈现

下面是猜数字游戏的效果展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值