Java---设计模式app小软件汇总应用(3)

简介: Java---设计模式app小软件汇总应用(3)

实现类UserEbo :

package cn.hncu.app.business.impl;
import cn.hncu.app.business.ebi.UserEbi;
import cn.hncu.app.dao.dao.UserDAO;
import cn.hncu.app.dao.factory.UserDaoFactory;
import cn.hncu.app.vo.User;
public class UserEbo implements UserEbi{
    @Override
    public boolean addUser(User user) {
        UserDAO userDao = UserDaoFactory.getUserDAO();
        return userDao.addUser(user);
    }
    @Override
    public Object[] getAllUser() {
        UserDAO userDao = UserDaoFactory.getUserDAO();
        return userDao.getAllUsers();
    }
}


表现层:

UserAddPanel 类:

/*
 * UserAddPanel.java
 *
 * Created on __DATE__, __TIME__
 */
package cn.hncu.app.ui;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import cn.hncu.app.business.ebi.UserEbi;
import cn.hncu.app.business.factory.UserEbiFactory;
import cn.hncu.app.vo.User;
/**
 *
 * @author  __USER__
 */
public class UserAddPanel extends javax.swing.JPanel {
    private JFrame mainFrame = null;
    /** Creates new form UserAddPanel */
    public UserAddPanel(JFrame mainFrame) {
        this.mainFrame = mainFrame;
        initComponents();
    }
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    //GEN-BEGIN:initComponents
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        tfdAge = new javax.swing.JTextField();
        tfdName = new javax.swing.JTextField();
        setMinimumSize(new java.awt.Dimension(800, 600));
        setLayout(null);
        jLabel1.setText("\u5e74\u9f84\uff1a");
        add(jLabel1);
        jLabel1.setBounds(170, 200, 50, 40);
        jLabel2.setText("\u59d3\u540d\uff1a");
        add(jLabel2);
        jLabel2.setBounds(170, 120, 50, 40);
        jButton1.setText("\u6dfb\u52a0");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        add(jButton1);
        jButton1.setBounds(240, 330, 170, 60);
        add(tfdAge);
        tfdAge.setBounds(210, 210, 170, 30);
        add(tfdName);
        tfdName.setBounds(210, 130, 170, 30);
    }// </editor-fold>
    //GEN-END:initComponents
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        //1收集参数 
        String name = tfdName.getText();
        String strAge = tfdAge.getText();
        int age = Integer.parseInt(strAge);//简单的转换成一个整型数了。
        //2组织参数
        //User user = new User(name, age);
        User user = new User();
        user.setAge(age);
        user.setName(name);
        //3调用逻辑层---通过接口
        UserEbi userEbi = UserEbiFactory.getUserEbi();
        boolean isSuccess=userEbi.addUser(user);
        //4导向不同页面
        if(isSuccess){
            JOptionPane.showMessageDialog(this, "恭喜,添加成功!");
            this.mainFrame.setContentPane(new UserListPanel(mainFrame));
            this.mainFrame.validate();
        }else{
            JOptionPane.showMessageDialog(this, "祝贺,添加失败!");
        }
    }
    //GEN-BEGIN:variables
    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JTextField tfdAge;
    private javax.swing.JTextField tfdName;
    // End of variables declaration//GEN-END:variables
}


UserListPanel 类:

/*
 * UserListPanel.java
 *
 * Created on __DATE__, __TIME__
 */
package cn.hncu.app.ui;
import javax.swing.JFrame;
import cn.hncu.app.business.ebi.UserEbi;
import cn.hncu.app.business.factory.UserEbiFactory;
/**
 *
 * @author  __USER__
 */
public class UserListPanel extends javax.swing.JPanel {
    private JFrame mainFrame = null;
    /** Creates new form UserListPanel */
    public UserListPanel(JFrame mainFrame) {
        this.mainFrame = mainFrame;
        initComponents();
        myInitDatas();
    }
    private void myInitDatas() {
        UserEbi userEbi = UserEbiFactory.getUserEbi();
        Object[] objs = userEbi.getAllUser();
        this.listUsers.setListData(objs);
    }
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    //GEN-BEGIN:initComponents
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {
        jScrollPane1 = new javax.swing.JScrollPane();
        listUsers = new javax.swing.JList();
        jLabel1 = new javax.swing.JLabel();
        setMinimumSize(new java.awt.Dimension(800, 600));
        setLayout(null);
        listUsers.setModel(new javax.swing.AbstractListModel() {
            String[] strings = { "" };
            public int getSize() {
                return strings.length;
            }
            public Object getElementAt(int i) {
                return strings[i];
            }
        });
        jScrollPane1.setViewportView(listUsers);
        add(jScrollPane1);
        jScrollPane1.setBounds(170, 170, 410, 210);
        jLabel1.setText("\u4fe1\u606f");
        add(jLabel1);
        jLabel1.setBounds(350, 90, 70, 50);
    }// </editor-fold>
    //GEN-END:initComponents
    //GEN-BEGIN:variables
    // Variables declaration - do not modify
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JList listUsers;
    // End of variables declaration//GEN-END:variables
}
目录
相关文章
|
2天前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
|
2天前
|
设计模式 安全 算法
【Java面试题汇总】设计模式篇(2023版)
谈谈你对设计模式的理解、七大原则、单例模式、工厂模式、代理模式、模板模式、观察者模式、JDK中用到的设计模式、Spring中用到的设计模式
【Java面试题汇总】设计模式篇(2023版)
|
2天前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑】设计模式——原型模式
对比原型模式和传统方式的实现思路、代码方案、优缺点,阐述原型模式的使用场景,以及深拷贝、浅拷贝等相关概念,并扩展原型模式在Spring源码中的应用。
【Java笔记+踩坑】设计模式——原型模式
|
7天前
|
Java 数据库连接 数据库
Java服务提供接口(SPI)的设计与应用剖析
Java SPI提供了一种优雅的服务扩展和动态加载机制,使得Java应用程序可以轻松地扩展功能和替换组件。通过合理的设计与应用,SPI可以大大增强Java应用的灵活性和可扩展性。
39 18
|
6天前
|
缓存 监控 Java
Java中的并发编程:理解并应用线程池
在Java的并发编程中,线程池是提高应用程序性能的关键工具。本文将深入探讨如何有效利用线程池来管理资源、提升效率和简化代码结构。我们将从基础概念出发,逐步介绍线程池的配置、使用场景以及最佳实践,帮助开发者更好地掌握并发编程的核心技巧。
|
3天前
|
SQL JavaScript 前端开发
用Java来开发Hive应用
用Java来开发Hive应用
18 7
|
3天前
|
SQL JavaScript 前端开发
用Java、Python来开发Hive应用
用Java、Python来开发Hive应用
16 6
|
3天前
|
设计模式 数据库连接 PHP
PHP中的设计模式应用与最佳实践
在本文中,我们将探讨PHP设计模式的应用和最佳实践。通过深入分析,揭示如何在实际项目中有效利用设计模式来优化代码结构、提升系统灵活性和维护性,并分享一些常见设计模式的实际应用案例。无论你是PHP初学者还是经验丰富的开发者,这篇文章都会对你有所帮助。
|
2天前
|
Java 数据库连接 开发者
Java中的异常处理机制:理解与应用
在Java编程中,异常处理是一个核心概念,它允许程序在遇到错误时优雅地恢复或终止。本文将深入探讨Java的异常处理机制,包括异常的分类、如何正确使用try-catch-finally块以及throw关键字。我们将通过实例来说明如何在Java应用程序中有效地捕获和处理异常,以确保程序的健壮性和稳定性。
|
2天前
|
Java 调度 开发者
Java中的多线程基础及其应用
【9月更文挑战第13天】本文将深入探讨Java中的多线程概念,从基本理论到实际应用,带你一步步了解如何有效使用多线程来提升程序的性能。我们将通过实际代码示例,展示如何在Java中创建和管理线程,以及如何利用线程池优化资源管理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧,帮助你更好地理解和应用多线程编程。