• 售前

  • 售后

热门帖子
入门百科

Java 实验五

[复制链接]
准藏智虽 显示全部楼层 发表于 2022-1-12 21:00:57 |阅读模式 打印 上一主题 下一主题
实验题目:
1, 利用 GUI 模拟用户登录,所有的用户名密码存储在数据库中;定义一个类使用 JDBC 连接数据库,读取用户名密码数据进行匹配以实现用户登录,若登录成功,提示用户登录成功,否则,提示用户登录失败:
2,设计一个关于文件操作的图形化应用程序,至少实现以下功能:包含一个文本框以及添加按钮,在文本框中输入文字后,点击添加按钮可以在文件中写入文本框中的文字;包含一个读取按钮,点击该按钮后,可以读取文件内容,并显示到文本框中。
实验题目放上面,方便各位朋友们容易搜到
FH不多说,直接上代码
第一题代码:
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.sql.Connection;
  6. import java.sql.DriverManager;
  7. import java.sql.ResultSet;
  8. import java.sql.SQLException;
  9. import java.sql.Statement;
  10. public class JohnGUI {
  11.     public static void createAndShowGUI(){
  12.         JFrame f = new JFrame("登录");
  13.         f.setSize(400,300);
  14.         f.setLocation(600,300);
  15.         f.setLayout(new BorderLayout());
  16.         f.setVisible(true);
  17.         f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  18.         JPanel panel = new JPanel();//创建一个面板
  19.         JPanel panel1 = new JPanel();
  20.         JTextField inputField = new JTextField(23);
  21.         JTextField password = new JPasswordField(23);
  22.         JLabel label = new JLabel("用户名",JLabel.CENTER);
  23.         label.setFont(new Font("宋体",Font.PLAIN,20));
  24.         JLabel label2 = new JLabel("密码",JLabel.CENTER);
  25.         label2.setFont(new Font("宋体",Font.PLAIN,20));
  26.         JButton btn = new JButton("登录");
  27.         JButton btn2 = new JButton("清空");
  28.         btn.setPreferredSize(new Dimension(100,25));
  29.         btn2.setPreferredSize(new Dimension(100,25));
  30.         panel.add(label);
  31.         panel.add(inputField);
  32.         panel1.add(label2);
  33.         panel1.add(password);
  34.         panel1.add(btn);
  35.         panel1.add(btn2);
  36.         f.add(panel,BorderLayout.PAGE_START);
  37.         f.add(panel1,BorderLayout.CENTER);
  38.         btn.addActionListener(new ActionListener() {
  39.             @Override
  40.             public void actionPerformed(ActionEvent e) {
  41.                 String input = inputField.getText();
  42.                 String pwd = password.getText();
  43.                 boolean flag = false;
  44.                 try {
  45.                     flag = findData(input,pwd);
  46.                 } catch (Exception ex) {
  47.                     ex.printStackTrace();
  48.                 }
  49.                 if (flag == true) {
  50.                     JOptionPane.showMessageDialog(null, "登录成功");
  51.                     f.dispose();
  52.                 }else{
  53.                     JOptionPane.showMessageDialog(null,"账号或密码有误,登录失败!");
  54.                 }
  55.             }
  56.         });
  57.         //清空的事件处理
  58.         btn2.addActionListener(new ActionListener() {
  59.             @Override
  60.             public void actionPerformed(ActionEvent e) {
  61.                 inputField.setText("");
  62.                 password.setText("");
  63.             }
  64.         });
  65.     }
  66.     public static boolean findData(String user, String pwd) throws SQLException {
  67.         Connection connection = null ;
  68.         Statement statement = null;
  69.         ResultSet resultSet = null;
  70.         try {
  71.             Class.forName("com.mysql.jdbc.Driver");
  72.             String url="jdbc:mysql://localhost:3306/test?characterEncoding=utf8&&useSSL=false";
  73.             String useraccount="root";
  74.             String password="root";//数据库密码
  75.             connection = DriverManager.getConnection(url,useraccount, password);
  76.             statement = connection.createStatement();
  77.             String sql = "select * from usertable";
  78.             resultSet = statement.executeQuery(sql);
  79.             while (resultSet.next()) {
  80.                 String username = resultSet.getString("user");
  81.                 String passwd = resultSet.getString("password");
  82.                 System.out.println(username);
  83.                 System.out.println(passwd);
  84.                 if (username == null || passwd == null ) {
  85.                     return false;
  86.                 } else {
  87.                     if (username.equals(user) && passwd.equals(pwd)) {
  88.                         return true;
  89.                     } else
  90.                         return false;
  91.                 }
  92.             }
  93.         }catch (Exception e){
  94.             e.printStackTrace();
  95.         }finally {
  96.             if(resultSet != null){
  97.                 resultSet.close();
  98.             }
  99.             if(statement != null){
  100.                 resultSet.close();
  101.             }
  102.             if(connection != null){
  103.                 resultSet.close();
  104.             }
  105.         }
  106.         return false;
  107.     }
  108.     public static void main(String[] args) {
  109.        SwingUtilities.invokeLater(JohnGUI::createAndShowGUI);
  110.     }
  111.    }
复制代码

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

好了 第一个实验题结束,上第二道菜
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.io.*;
  6. public class JohnFile {
  7.     static JTextField field;
  8.     static  JTextArea area;
  9.     public static void creatGUI(){
  10.         JFrame frame = new JFrame("文件操作界面");
  11.         frame.setSize(600,500);
  12.         frame.setLocation(400,500);
  13.         frame.setVisible(true);
  14.         frame.setLayout(new BorderLayout());
  15.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  16.         JPanel panel = new JPanel();
  17.         field = new JTextField(20);
  18.         area = new JTextArea(20,50);
  19.         area.setEditable(false);
  20.         JLabel label = new JLabel("文本框",JLabel.LEFT);
  21.         JButton button = new JButton("添加");
  22.         JButton button1 = new JButton("读取");
  23.         JScrollPane scrollPane = new JScrollPane(area);
  24.         scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
  25.         panel.add(label);
  26.         panel.add(field);
  27.         panel.add(button);
  28.         panel.add(button1);
  29.         frame.add(scrollPane,BorderLayout.CENTER);
  30.         frame.add(panel,BorderLayout.NORTH);
  31.         //添加
  32.         button.addActionListener(new ActionListener() {
  33.             @Override
  34.             public void actionPerformed(ActionEvent e) {
  35.                 try {
  36.                     buffWriter();
  37.                     JOptionPane.showMessageDialog(null,"添加成功");
  38.                     field.setText("");
  39.                     area.setText("");
  40.                 } catch (Exception ex) {
  41.                     ex.printStackTrace();
  42.                 }
  43.             }
  44.         });
  45.         //读取
  46.         button1.addActionListener(new ActionListener() {
  47.             @Override
  48.             public void actionPerformed(ActionEvent e) {
  49.                 try {
  50.                     buffReader();
  51.                 } catch (Exception ex) {
  52.                     ex.printStackTrace();
  53.                 }
  54.             }
  55.         });
  56.     }
  57.     public static void buffWriter()throws Exception{
  58.         String text = JohnFile.field.getText();
  59.         System.out.println(text);
  60.         BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("textWriter.txt",true));
  61.         bufferedWriter.write(text);
  62.         bufferedWriter.newLine();
  63.         bufferedWriter.close();
  64.     }
  65.     public static void buffReader()throws Exception{
  66.         BufferedReader bufferedReader = new BufferedReader(new FileReader("textWriter.txt"));
  67.         String textRead;
  68.         while((textRead = bufferedReader.readLine())!= null){
  69.             area.append(textRead);
  70.         }
  71.         JohnFile.area.append(textRead);
  72.     }
  73.     public static void main(String[] args) {
  74.         SwingUtilities.invokeLater(JohnFile::creatGUI);
  75.     }
  76. }
复制代码
下面是效果图,

这个代码,可以直接使用,改一下类名即可,不用配置什么环境!
还有啰嗦一句,这个代码创造的文件,在你的src 文件外面!

来源:https://blog.caogenba.net/qq_51901495/article/details/122426029
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作