编写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);
  }
}
相关文章
|
5天前
|
Java 开发者 Spring
java springboot监听事件和处理事件
通过上述步骤,开发者可以在Spring Boot项目中轻松实现事件的发布和监听。事件机制不仅解耦了业务逻辑,还提高了系统的可维护性和扩展性。掌握这一技术,可以显著提升开发效率和代码质量。
70 33
|
7天前
|
Java 开发者 Spring
java springboot监听事件和处理事件
通过上述步骤,开发者可以在Spring Boot项目中轻松实现事件的发布和监听。事件机制不仅解耦了业务逻辑,还提高了系统的可维护性和扩展性。掌握这一技术,可以显著提升开发效率和代码质量。
35 13
|
11天前
|
Java Spring
Java Spring Boot监听事件和处理事件
通过上述步骤,我们可以在Java Spring Boot应用中实现事件的发布和监听。事件驱动模型可以帮助我们实现组件间的松耦合,提升系统的可维护性和可扩展性。无论是处理业务逻辑还是系统事件,Spring Boot的事件机制都提供了强大的支持和灵活性。希望本文能为您的开发工作提供实用的指导和帮助。
54 15
|
8天前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
|
13天前
|
Java 开发者 Spring
Java Springboot监听事件和处理事件
通过这些内容的详细介绍和实例解析,希望能帮助您深入理解Spring Boot中的事件机制,并在实际开发中灵活应用,提高系统的可维护性和扩展性。
40 7
|
24天前
|
存储 IDE Java
漂亮不是梦!Java Swing美化攻略
Java Swing 是一个为 Java 设计的 GUI 工具包,提供文本框、按钮等组件。尽管其外观可定制,通过 Look and Feel(LAF)机制改变应用风格,如 Darcula 和 FlatLaf,但现已淡出主流视野,主要应用于 IDE 领域,如 IntelliJ IDEA 和 Eclipse。相比其他 GUI 框架,Swing 的发展前景有限。
51 1
|
1月前
|
Java 程序员
深入理解Java异常处理机制
Java的异常处理是编程中的一块基石,它不仅保障了代码的健壮性,还提升了程序的可读性和可维护性。本文将深入浅出地探讨Java异常处理的核心概念、分类、处理策略以及最佳实践,旨在帮助读者建立正确的异常处理观念,提升编程效率和质量。
140 1
|
1月前
|
Java 开发者 UED
深入探索Java中的异常处理机制##
本文将带你深入了解Java语言中的异常处理机制,包括异常的分类、异常的捕获与处理、自定义异常的创建以及最佳实践。通过具体实例和代码演示,帮助你更好地理解和运用Java中的异常处理,提高程序的健壮性和可维护性。 ##
60 2
|
1月前
|
Java 开发者
Java中的异常处理机制深度剖析####
本文深入探讨了Java语言中异常处理的重要性、核心机制及其在实际编程中的应用策略,旨在帮助开发者更有效地编写健壮的代码。通过实例分析,揭示了try-catch-finally结构的最佳实践,以及如何利用自定义异常提升程序的可读性和维护性。此外,还简要介绍了Java 7引入的多异常捕获特性,为读者提供了一个全面而实用的异常处理指南。 ####
61 2
|
2月前
|
设计模式 消息中间件 搜索推荐
Java 设计模式——观察者模式:从优衣库不使用新疆棉事件看系统的动态响应
【11月更文挑战第17天】观察者模式是一种行为设计模式,定义了一对多的依赖关系,使多个观察者对象能直接监听并响应某一主题对象的状态变化。本文介绍了观察者模式的基本概念、商业系统中的应用实例,如优衣库事件中各相关方的动态响应,以及模式的优势和实际系统设计中的应用建议,包括事件驱动架构和消息队列的使用。