编写Java程序,使用Swing事件处理机制实现用户登录和英雄信息显示

简介: 编写Java程序,使用Swing事件处理机制实现用户登录和英雄信息显示

需求说明:


使用Swing事件处理机制实现用户登录和英雄信息显示


29.png30.png


实现思路:

创建LoginView类,该类用于显示登录界面,为登录按钮添加ActionListener事件,监听鼠标的左键单击事件。该事件对应的处理方法中,接收用户输入的账号和密码,如果用户输入的账号和密码为空,使用JOptionPane对话框显示友好提示。


当用户输入的账号或密码不正确,系统使用JOptionPane对话框给出友好提示信息,如果用户输入的账号密码正确,调用创建HeroListView类的无参构造器,即可显示英雄信息列表,并将登录界面隐藏。


创建HeroListView类,该类用于显示英雄信息列表,将数据显示在JTable中。


实现代码:


LoginView类:


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public  class LoginView extends JFrame {
  public  LoginView() {
    this.setTitle("用户登录");
    this.setBounds(0, 0, 500, 350);
    this.setLocationRelativeTo(null);//让窗口在屏幕中间显示
    this.setResizable(false);//让窗口大小不可改变
    this.setLayout(null);
    JLabel userText = new JLabel("账号:");
    userText.setBounds(90, 70, 80, 25);
    JLabel pwdText = new JLabel("密码:");
    pwdText.setBounds(90, 140, 80, 25);
    JTextField userId = new JTextField();
    userId.setBounds(160, 70, 220, 30);
    JPasswordField userPsd = new JPasswordField();
    userPsd.setBounds(160, 140, 220, 30);
    JButton DL = new JButton("登录");
    DL.setBounds(160, 200, 80, 35);
    JButton ZC = new JButton("注册");
    ZC.setBounds(285, 200, 80, 35);
    this.add(userText);
    this.add(pwdText);
    this.add(userId);
    this.add(userPsd);
    this.add(DL);
    this.add(ZC);
    //为DL添加鼠标被单击事件
    DL.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        String id = userId.getText();
        String pwd = userPsd.getText();
        if("".equals(id)||"".equals(pwd)) {
          JOptionPane.showMessageDialog(null, "用户名或密码不能为空!");
        }else if ("123".equals(id)&&"123".equals(pwd)) {
          JOptionPane.showMessageDialog(null, "登录成功!欢迎使用!");
          HeroListView hv = new HeroListView();
          hv.setVisible(true);
          setVisible(false);
        }else {
          JOptionPane.showMessageDialog(null, "账户名或密码错误,请检查!");
        }
      }
    });
  }
}


HeroListView类:


import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ScrollPaneConstants;
public class HeroListView extends JFrame {
  public HeroListView() {
    this.setTitle("英雄信息列表");
    this.setBounds(0, 0, 500, 350);
    this.setLocationRelativeTo(null);//让窗口在屏幕中间显示
    this.setResizable(false);//让窗口大小不可改变
    this.setLayout(null);
    this.setVisible(true);
    BorderLayout bl=new BorderLayout();
    this.setLayout(bl);
    //定义表格的表头信息
    String[] heads={"姓名","年龄","电话"};
    //定义表格中显示的信息
    Object[][] data={
              {"丘处机","33","13870943994"},{"徐世绩","28","18062795496"},
      {"杜如晦","29","18600158798"},{"方孟傲","35","13836188388"},
      {"杜小月","19","15248779908"},{"余国荔","25","13238112922"},
      {"罗士信","29","15927271222"},{"林徽因","34","15108235082"},
      {"陈永华","39","13296693349"},{"萧漩语","34","15847006955"}};
    //创建JTable对象
    JTable jTable = new JTable(data,heads);
    int v=ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
    int h=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;
    //创建滚动条面板对象,将JTable加入滚动条中,显示横向和垂直滚动条
    JScrollPane jsp=new JScrollPane(jTable,v,h);
    //将滚动面板添加至JFrame中
    this.add(jsp);
    this.setSize(450, 200);
    this.setVisible(true);
  }
}


Test类:


public class Test {
  public static void main(String[] args) {
    LoginView login = new LoginView();
    login.setVisible(true);
  }
}
相关文章
|
9天前
|
Java 数据库连接 开发者
Java的Shutdown Hook机制:优雅地关闭应用程序
Java的Shutdown Hook机制:优雅地关闭应用程序
17 1
|
11天前
|
Java 程序员 开发者
深入理解Java并发编程:线程同步与锁机制
【4月更文挑战第30天】 在多线程的世界中,确保数据的一致性和线程间的有效通信是至关重要的。本文将深入探讨Java并发编程中的核心概念——线程同步与锁机制。我们将从基本的synchronized关键字开始,逐步过渡到更复杂的ReentrantLock类,并探讨它们如何帮助我们在多线程环境中保持数据完整性和避免常见的并发问题。文章还将通过示例代码,展示这些同步工具在实际开发中的应用,帮助读者构建对Java并发编程深层次的理解。
|
13天前
|
Java
【专栏】Java反射机制,该机制允许程序在运行时获取类信息、动态创建对象、调用方法和访问属性
【4月更文挑战第27天】本文探讨了Java反射机制,该机制允许程序在运行时获取类信息、动态创建对象、调用方法和访问属性。反射通过Class、Constructor、Method和Field类实现。文中列举了反射的应用场景,如动态创建对象、调用方法、访问属性和处理注解,并提供了相关实例代码演示。
|
1天前
|
Java 数据安全/隐私保护
java中异常处理机制
java中异常处理机制
8 1
|
2天前
|
算法 安全 Java
深入探索Java中的并发编程:CAS机制的原理与应用
总之,CAS机制是一种用于并发编程的原子操作,它通过比较内存中的值和预期值来实现多线程下的数据同步和互斥,从而提供了高效的并发控制。它在Java中被广泛应用于实现线程安全的数据结构和算法。
16 0
|
2天前
|
Java API 开发者
解密Java反射机制与动态代理
解密Java反射机制与动态代理
8 0
|
4天前
|
Java 数据库连接 开发者
Java中的异常处理机制详解
Java异常处理是确保程序健壮的关键,涉及Throwable的Error和Exception子类。Error由JVM抛出,不建议捕获;Exception分为检查异常(需要捕获)和未检查异常。处理异常的关键字有try、catch、finally、throw和throws。最佳实践包括捕获具体异常、不吞没异常、释放资源和避免滥用异常。示例展示了如何在main方法中处理IOException,并在finally块中进行资源清理。
|
5天前
|
消息中间件 安全 Java
Java版云HIS系统:实现多医院患者信息共享与安全管埋
在医疗健康领域,数据的共享与安全已经成为行业发展的重要议题。传统的医院信息系统(HIS)往往受限于单一机构的信息孤岛,无法实现跨院区、跨系统的高效协作和数据互通。然而,随着云计算技术的发展与应用,云HIS系统应运而生,它正引领着一场关于多医院患者信息共享与安全管理的重大变革。
34 6
|
9天前
|
缓存 NoSQL Java
17:缓存机制-Java Spring
17:缓存机制-Java Spring
22 5
|
9天前
|
存储 前端开发 搜索推荐
13:Session机制实现用户登录与注销功能-Java Web
13:Session机制实现用户登录与注销功能-Java Web
24 3