IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 实验5 组件及事件处理 -> 正文阅读

[Java知识库]实验5 组件及事件处理

一、实验目的

? ? ? ??学习使用组件类;学习使用布局类;学习Java的事件处理模式及各种事件的处理。

二、实验内容

? ? ? ??实现如图所示的注册窗口和登录窗口,在注册窗口中填写好注册信息,点击注册按钮,将切换到登录窗口,在登录窗口中输入用户名和密码,如果用户名和密码与注册时输入的一致则弹出登录成功对话框,否则弹出登录失败对话框。

? ? ? ? 思考:修改程序,将注册信息保存到文件,登录时,输入的用户名和密码与保存的一致则弹出登录成功对话框,否则弹出登录失败对话框。

三、代码实现

//登录界面
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

public class LoginFrame extends JFrame {
    public LoginFrame() {
        init();
    }

    public void init() {
        JFrame frame = new JFrame("登录窗口");
        frame.setBounds(400, 100, 480, 410);
        frame.setLayout(null);
        Font font = new Font("Serief", Font.BOLD, 18);

        Label lb_username = new Label("用户名:");
        lb_username.setBounds(100, 76, 76, 20);
        lb_username.setFont(font);
        JTextField jtf_username = new JTextField();
        jtf_username.setBounds(199, 73, 127, 30);
        jtf_username.setFont(font);
        frame.add(lb_username);
        frame.add(jtf_username);

        Label lb_password = new Label("密码:");
        lb_password.setBounds(100, 143, 76, 20);
        lb_password.setFont(font);
        JPasswordField jpf_password = new JPasswordField();
        jpf_password.setBounds(199, 140, 127, 30);
        jpf_password.setFont(font);
        frame.add(lb_password);
        frame.add(jpf_password);

        JButton btn_login = new JButton("login");
        btn_login.setBounds(190, 220, 80, 40);
        btn_login.setFont(font);
        btn_login.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String username = jtf_username.getText().trim();
                String password = String.valueOf(jpf_password.getPassword());
                File file = new File("./user.txt");
                boolean result = false;
                if (file.exists()) {
                    try {
                        BufferedReader bfr = new BufferedReader(new FileReader(file));
                        String curLine = null;
                        while ((curLine = bfr.readLine()) != null) {
                            System.out.println(curLine);
                            String[] infos = curLine.split("---");
                            if (username.equals(infos[0]) && password.equals(infos[1])) {
                                result = true;
                                break;
                            }
                        }
                        bfr.close();
                        if (result) {
                            frame.setVisible(false);
                            JOptionPane.showMessageDialog(null, "登录成功!", "登录成功", JOptionPane.INFORMATION_MESSAGE);
                        } else {
                            JOptionPane.showMessageDialog(null, "登录失败!", "登录失败", JOptionPane.ERROR_MESSAGE);
                        }
                    } catch (Exception ep) {
                        ep.printStackTrace();
                    }
                } else {
                    JOptionPane.showMessageDialog(null, "登录失败!", "登录失败", JOptionPane.ERROR_MESSAGE);
                }
            }
        });
        frame.add(btn_login);

        frame.setVisible(true);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
}
//注册界面
import javafx.scene.control.ComboBox;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileWriter;

public class RegisterFrame {
    public RegisterFrame() {
        init();
    }

    public void init() {
        JFrame frame = new JFrame("注册窗口");
        frame.setLayout(new FlowLayout(FlowLayout.LEFT, 50, 30));
        frame.setBounds(400, 100, 760, 600);

        Font font = new Font("Serief", Font.BOLD, 18);

        JPanel row1 = new JPanel(new FlowLayout(FlowLayout.LEFT, 20, 5));
        Label lb_username = new Label("用户名:");
        lb_username.setSize(76, 20);
        lb_username.setFont(font);
        row1.add(lb_username);

        JTextField jtf_username = new JTextField();
        jtf_username.setPreferredSize(new Dimension(140, 30));
        jtf_username.setFont(font);
        row1.add(jtf_username);

        Label lb_password = new Label("密码:");
        lb_password.setSize(66, 20);
        lb_password.setFont(font);
        row1.add(lb_password);

        JPasswordField jpf_password = new JPasswordField();
        jpf_password.setPreferredSize(new Dimension(140, 30));
        jpf_password.setFont(font);
        row1.add(jpf_password);

        JPanel row2 = new JPanel(new FlowLayout(FlowLayout.LEFT, 20, 5));

        Label lb_sex = new Label("性别:");
        lb_sex.setSize(66, 20);
        lb_sex.setFont(font);
        row2.add(lb_sex);

        ButtonGroup rbtgp = new ButtonGroup();
        JRadioButton rb1 = new JRadioButton("男");
        rb1.setFont(font);
        rb1.setSelected(true);
        JRadioButton rb2 = new JRadioButton("女");
        rb2.setFont(font);
        rbtgp.add(rb1);
        rbtgp.add(rb2);

        row2.add(rb1);
        row2.add(rb2);

        Label lb_hobby = new Label("爱好:");
        lb_hobby.setSize(66, 20);
        lb_hobby.setFont(font);
        row2.add(lb_hobby);
        JCheckBox cb1 = new JCheckBox("音乐");
        cb1.setFont(font);
        JCheckBox cb2 = new JCheckBox("国内旅游");
        cb2.setFont(font);
        JCheckBox cb3 = new JCheckBox("阅读");
        cb3.setFont(font);

        row2.add(cb1);
        row2.add(cb2);
        row2.add(cb3);

        JPanel row3 = new JPanel(new FlowLayout(FlowLayout.LEFT, 20, 5));
        Label lb_job = new Label("职业:");
        lb_job.setSize(66, 20);
        lb_job.setFont(font);
        row3.add(lb_job);

        JComboBox<String> cb_job = new JComboBox<>();
        cb_job.setFont(font);
        cb_job.setEnabled(true);
        cb_job.addItem("学生");
        cb_job.addItem("企业员工");
        cb_job.addItem("教师");
        row3.add(cb_job);

        Label lb_note = new Label("Note:");
        lb_note.setSize(66, 20);
        lb_note.setFont(font);
        row3.add(lb_note);

        JTextArea ta_note = new JTextArea(10,10);
        ta_note.setFont(font);
        row3.add(ta_note);

        JButton btn_register = new JButton("register");
        btn_register.setFont(font);
        btn_register.setPreferredSize(new Dimension(130, 35));
        btn_register.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String username = jtf_username.getText().trim();
                String password = String.valueOf(jpf_password.getPassword()).trim();
                if (username.equals("") || password.equals("")) {
                    JOptionPane.showMessageDialog(null, "用户名或密码不能为空!", "注册失败", JOptionPane.WARNING_MESSAGE);
                    return;
                }
                try {
                    File file = new File("./user.txt");
                    // 创建文件
                    file.createNewFile();
                    //将用户信息写入文件中
                    FileWriter fw = new FileWriter(file, true);
                    String content = username + "---" + password + "\n";
                    fw.write(content);
                    fw.close();

                    // 跳转到登录界面
                    frame.setVisible(false);
                    new LoginFrame();
                } catch (Exception ep) {
                    ep.printStackTrace();
                }
            }
        });
        row3.add(btn_register);

        frame.add(row1);
        frame.add(row2);
        frame.add(row3);

        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setVisible(true);

    }
}
//主程序
public class Test5 {
    public static void main(String[] args) {
        new RegisterFrame();
    }
}

四、运行结果

?

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-07 11:53:51  更:2021-12-07 11:55:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:29:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码