Java实训Six

2020.07.11第六次java实训
这次实训我们要开始做窗口界面了,这个要比之前只要代码看起来要好玩一点了。
首先我们要创建应用程序类在这里插入图片描述在这里插入图片描述1、创建主界面窗口MainFrame
在这里插入图片描述在这里插入图片描述运行结构如下:在这里插入图片描述2、创建用户登录窗口LoginFrame
在这里插入图片描述在这里插入图片描述在这里插入图片描述运行结果如下:在这里插入图片描述3、创建用户注册窗口RegisterFrame

package net.czy.student.gui;

import net.czy.student.app.Application;
import net.czy.student.bean.User;
import net.czy.student.service.UserService;
import net.czy.student.service.impl.UserServiceImpl;

import javax.swing.;
import java.awt.
;
import java.awt.event.*;
import java.sql.Timestamp;
import java.util.Date;

/**

  • 功能:注册窗口

  • 作者:车昭勇

  • 日期:2020年07月11日
    */
    public class RegisterFrame extends JFrame {
    private JLabel lblUsername;
    private JLabel lblPassword;
    private JLabel lblTelephone;

    private JTextField txtUsername;
    private JTextField txtTelephon;
    private JPasswordField txtPassword;

    private JButton btnSubmit;
    private JButton btnCancel;
    private JButton btnLogin;

    private JPanel panel;
    private JPanel panel1;
    private JPanel panel2;
    private JPanel panel3;
    private JPanel panel4;

    private String username;
    private String password;
    private String telephone;
    private Date registerTime;

    public RegisterFrame(String title) {
    super(title);
    iniGUI();
    }

    private void iniGUI() {
    //创建组件(面板与控件)
    panel =(JPanel) getContentPane();
    panel1 = new JPanel();
    panel2 = new JPanel();
    panel3 = new JPanel();
    panel4 = new JPanel();

     lblUsername = new JLabel("用户名:");
     lblPassword = new JLabel("密    码:");
     lblTelephone = new JLabel("电   话");
     txtUsername = new JTextField(15);
     txtPassword = new JPasswordField(15);
     txtTelephon = new JTextField(15);
     btnSubmit = new JButton("提交[S]");
     btnCancel = new JButton("取消[C]");
     btnLogin = new JButton("登录[L]");
    
     //讲控件添加到四个小面板
     panel1.add(lblUsername);
     panel1.add(txtUsername);
     panel2.add(lblPassword);
     panel2.add(txtPassword);
     panel3.add(lblTelephone);
     panel3.add(txtTelephon);
     panel4.add(btnSubmit);
     panel4.add(btnCancel);
     panel4.add(btnLogin);
    
     //设置大面板布局,将四个小面板添加到大面板
     panel.setLayout(new GridLayout(4,1));
     panel.add(panel1);
     panel.add(panel2);
     panel.add(panel3);
     panel.add(panel4);
     //设置窗口大小
     setSize(250,200);
     //设置窗口屏幕居中
     setLocationRelativeTo(null);
     //设置窗口不可调整大小
     setResizable(false);
     //设置窗口刚好容纳组件
     pack();
     //设置窗口标题
     setTitle("用户注册");
     //设置窗口可见
     setVisible(true);
    
     //注册窗口监听器
     addWindowListener(new WindowAdapter() {
         @Override
         public void windowClosing(WindowEvent e) {
             //卸载当前窗口——注册窗口
             dispose();
             //让登录窗口可见
             Application.loginFrame.setVisible(true);
         }
     });
    
     //【提交】按钮单击事件处理
     btnSubmit.addActionListener(new ActionListener() {
         @Override
         public void actionPerformed(ActionEvent e) {
             register();
         }
     });
     //【提交】按钮按键事件处理
     btnSubmit.addKeyListener(new KeyAdapter() {
         @Override
         public void keyPressed(KeyEvent e) {
             if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                 register();
             }
         }
     });
     //【取消】按钮单击事件处理
     btnCancel.addActionListener(new ActionListener() {
         @Override
         public void actionPerformed(ActionEvent e) {
             //显示登陆窗口
             Application.loginFrame.setVisible(true);
             //卸载当前窗口
             dispose();
         }
     });
     //【用户名】文本框按键事件处理
     txtUsername.addKeyListener(new KeyAdapter() {
         @Override
         public void keyPressed(KeyEvent e) {
             if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                 txtPassword.requestFocus();
             }
         }
     });
     //【密码】文本框按键事件处理
     txtPassword.addKeyListener(new KeyAdapter() {
         @Override
         public void keyPressed(KeyEvent e) {
             if (e.getKeyCode() == 10) {
                 txtTelephon.requestFocus();
             }
         }
     });
     //【电话】文本框按键事件处理
     txtTelephon.addKeyListener(new KeyAdapter() {
         @Override
         public void keyPressed(KeyEvent e) {
             if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                 btnSubmit.requestFocus();
             }
         }
     });
    

    }

    private void register() {
    // 获取用户名
    username = txtUsername.getText().trim();
    // 获取密码
    password = new String(txtPassword.getPassword());
    // 获取电话
    telephone = txtTelephon.getText().trim();
    // 定义当前时间为注册时间
    registerTime = new Timestamp(System.currentTimeMillis());

     // 对用户名进行非空校验
     if (username.equals("")) {
         JOptionPane.showMessageDialog(null, "用户名不能为空!",
                 "学生信息管理系统", JOptionPane.WARNING_MESSAGE);
         txtUsername.requestFocus();
         return;
     }
    
     // 对密码进行非空校验
     if (password.equals("")) {
         JOptionPane.showMessageDialog(null, "密码不能为空!",
                 "学生信息管理系统", JOptionPane.WARNING_MESSAGE);
         txtPassword.requestFocus();
         return;
     }
    
     // 定义用户服务对象
     UserService userService = new UserServiceImpl();
     // 创建用户
     User user = new User();
     user.setUsername(username);
     user.setPassword(password);
     user.setTelephone(telephone);
     user.setRegisterTime(registerTime);
    
     // 添加用户
     int count = userService.addUser(user);
    
     // 判断是否添加成功
     if (count > 0) {
         setVisible(false);
         JOptionPane.showMessageDialog(null, "恭喜!注册成功!",
                 "学生信息管理系统", JOptionPane.INFORMATION_MESSAGE);
         setVisible(true);
     } else {
         JOptionPane.showMessageDialog(null, "遗憾!注册失败!",
                 "学生信息管理系统", JOptionPane.INFORMATION_MESSAGE);
     }
    

    }

    public static void main(String[] args) {
    Application.registerFrame = new RegisterFrame(“用户注册”);
    }
    }

运行结果如下:在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像识别技术在病虫害检测中的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像中提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程中,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统中,可以是移动应用、网页服务或集成到智能农业设备中。 7. **实时监测**:在实际应用中,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测中的应用将越来越广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值