实验题目:
1, 利用 GUI 模拟用户登录,所有的用户名密码存储在数据库中;定义一个类使用 JDBC 连接数据库,读取用户名密码数据进行匹配以实现用户登录,若登录成功,提示用户登录成功,否则,提示用户登录失败:
2,设计一个关于文件操作的图形化应用程序,至少实现以下功能:包含一个文本框以及添加按钮,在文本框中输入文字后,点击添加按钮可以在文件中写入文本框中的文字;包含一个读取按钮,点击该按钮后,可以读取文件内容,并显示到文本框中。
实验题目放上面,方便各位朋友们容易搜到
FH不多说,直接上代码
第一题代码:
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- public class JohnGUI {
- public static void createAndShowGUI(){
- JFrame f = new JFrame("登录");
- f.setSize(400,300);
- f.setLocation(600,300);
- f.setLayout(new BorderLayout());
- f.setVisible(true);
- f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- JPanel panel = new JPanel();//创建一个面板
- JPanel panel1 = new JPanel();
- JTextField inputField = new JTextField(23);
- JTextField password = new JPasswordField(23);
- JLabel label = new JLabel("用户名",JLabel.CENTER);
- label.setFont(new Font("宋体",Font.PLAIN,20));
- JLabel label2 = new JLabel("密码",JLabel.CENTER);
- label2.setFont(new Font("宋体",Font.PLAIN,20));
- JButton btn = new JButton("登录");
- JButton btn2 = new JButton("清空");
- btn.setPreferredSize(new Dimension(100,25));
- btn2.setPreferredSize(new Dimension(100,25));
- panel.add(label);
- panel.add(inputField);
- panel1.add(label2);
- panel1.add(password);
- panel1.add(btn);
- panel1.add(btn2);
- f.add(panel,BorderLayout.PAGE_START);
- f.add(panel1,BorderLayout.CENTER);
- btn.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- String input = inputField.getText();
- String pwd = password.getText();
- boolean flag = false;
- try {
- flag = findData(input,pwd);
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- if (flag == true) {
- JOptionPane.showMessageDialog(null, "登录成功");
- f.dispose();
- }else{
- JOptionPane.showMessageDialog(null,"账号或密码有误,登录失败!");
- }
- }
- });
- //清空的事件处理
- btn2.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- inputField.setText("");
- password.setText("");
- }
- });
- }
- public static boolean findData(String user, String pwd) throws SQLException {
- Connection connection = null ;
- Statement statement = null;
- ResultSet resultSet = null;
- try {
- Class.forName("com.mysql.jdbc.Driver");
- String url="jdbc:mysql://localhost:3306/test?characterEncoding=utf8&&useSSL=false";
- String useraccount="root";
- String password="root";//数据库密码
- connection = DriverManager.getConnection(url,useraccount, password);
- statement = connection.createStatement();
- String sql = "select * from usertable";
- resultSet = statement.executeQuery(sql);
- while (resultSet.next()) {
- String username = resultSet.getString("user");
- String passwd = resultSet.getString("password");
- System.out.println(username);
- System.out.println(passwd);
- if (username == null || passwd == null ) {
- return false;
- } else {
- if (username.equals(user) && passwd.equals(pwd)) {
- return true;
- } else
- return false;
- }
- }
- }catch (Exception e){
- e.printStackTrace();
- }finally {
- if(resultSet != null){
- resultSet.close();
- }
- if(statement != null){
- resultSet.close();
- }
- if(connection != null){
- resultSet.close();
- }
- }
- return false;
- }
- public static void main(String[] args) {
- SwingUtilities.invokeLater(JohnGUI::createAndShowGUI);
- }
- }
复制代码

对了,如果你需要这个代码能运行,你需要做以下三件事:
1,把里面的数据库密码改成你自己的,然后把我的class类名改成与你的一致,包括主函数中的类名也要改。
2,MySQL 中的数据库名字 ,以及表名和列名属性参照我的,你要是会改相应的代码,就按自己的想法改,嫌麻烦的话,就完全按我的
3,下载与你MySQL数据库版本相对应的驱动器,并且放在你的项目中
下面是我的数据库名字
下面是我的table表属性

好了 第一个实验题结束,上第二道菜
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.io.*;
- public class JohnFile {
- static JTextField field;
- static JTextArea area;
- public static void creatGUI(){
- JFrame frame = new JFrame("文件操作界面");
- frame.setSize(600,500);
- frame.setLocation(400,500);
- frame.setVisible(true);
- frame.setLayout(new BorderLayout());
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- JPanel panel = new JPanel();
- field = new JTextField(20);
- area = new JTextArea(20,50);
- area.setEditable(false);
- JLabel label = new JLabel("文本框",JLabel.LEFT);
- JButton button = new JButton("添加");
- JButton button1 = new JButton("读取");
- JScrollPane scrollPane = new JScrollPane(area);
- scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
- panel.add(label);
- panel.add(field);
- panel.add(button);
- panel.add(button1);
- frame.add(scrollPane,BorderLayout.CENTER);
- frame.add(panel,BorderLayout.NORTH);
- //添加
- button.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- try {
- buffWriter();
- JOptionPane.showMessageDialog(null,"添加成功");
- field.setText("");
- area.setText("");
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- });
- //读取
- button1.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- try {
- buffReader();
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- });
- }
- public static void buffWriter()throws Exception{
- String text = JohnFile.field.getText();
- System.out.println(text);
- BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("textWriter.txt",true));
- bufferedWriter.write(text);
- bufferedWriter.newLine();
- bufferedWriter.close();
- }
- public static void buffReader()throws Exception{
- BufferedReader bufferedReader = new BufferedReader(new FileReader("textWriter.txt"));
- String textRead;
- while((textRead = bufferedReader.readLine())!= null){
- area.append(textRead);
- }
- JohnFile.area.append(textRead);
- }
- public static void main(String[] args) {
- SwingUtilities.invokeLater(JohnFile::creatGUI);
- }
- }
复制代码
下面是效果图,

这个代码,可以直接使用,改一下类名即可,不用配置什么环境!
还有啰嗦一句,这个代码创造的文件,在你的src 文件外面!
来源:https://blog.caogenba.net/qq_51901495/article/details/122426029
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |