m0_73919856 2023-05-11 16:52 采纳率: 100%
浏览 24
已结题

Java Swing设计实验

自己改了很多个报错,后面也没显示显示哪里错,最后运行就错了

题目:
1.设计一个注册界面,如下图所示。根据界面,自己排版进行布局。

img


2.创建一个exper3的数据库,再创建一个user数据表,包括:id,username, pwd, repwd, sex, hobby,address,degree字段。把注册界面所填写信息,保存在exper3数据库中的user表中进行存储。

img

img

img

img

1.Sy1_1

import java.awt.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.*;

import ex1.User;

public class Sy1_1 extends JFrame{
    JPanel p;
    JLabel lblName,lblPwd,lblRePwd,lblSex,lblHobby,lblAdress,lblDegree;
    JTextField txtName;
    JPasswordField txtPwd,txtRePwd;
    JRadioButton rb1,rb2;
    JCheckBox ckb1,ckb2,ckb3,ckb4;
    JTextArea txtAdress;
    JComboBox<String> cmb1;
    JButton btn1,btn2;
    private static User User;
    private UserService userService;
    
    public Sy1_1(){
        super("用户注册");
            userService = new UserService();
            p = new JPanel(new GridLayout(8,1));
            lblName = new JLabel(" 用 户 名:");
            lblPwd = new JLabel(" 密      码:");
            lblRePwd = new JLabel("确认密码:");
            lblSex = new JLabel("性别:");
            lblHobby = new JLabel("爱好:");
            lblAdress = new JLabel("地址:");
            lblDegree = new JLabel("学历:");
            txtName = new JTextField(20);
            txtPwd = new JPasswordField(20);
            txtRePwd = new JPasswordField(20);
            rb1 = new JRadioButton("男",true);
            rb2 = new JRadioButton("女");
            ButtonGroup bg = new ButtonGroup();
            bg.add(rb1);
            bg.add(rb2);
            ckb1 = new JCheckBox("阅读");
            ckb2 = new JCheckBox("上网");
            ckb3 = new JCheckBox("游泳");
            ckb4 = new JCheckBox("旅游");
            txtAdress = new JTextArea(3,20);
            String str[] = {"小学","初中","高中","本科","硕士","博士"};
            cmb1 = new JComboBox<String>(str);
            cmb1.setEditable(true);
            btn1 = new JButton("确定");
            btn1.addActionListener(new RegisterListener());
            btn2 = new JButton("重置");
            btn2.addActionListener(new ResetListener());
            
            JPanel p1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
            p1.add(lblName);
            p1.add(txtName);
            p.add(p1);
            JPanel p2 = new JPanel(new FlowLayout(FlowLayout.LEFT));
            p2.add(lblPwd);
            p2.add(txtPwd);
            p.add(p2);
            JPanel p3 = new JPanel(new FlowLayout(FlowLayout.LEFT));
            p3.add(lblRePwd);
            p3.add(txtRePwd);
            p.add(p3);
            JPanel p4 = new JPanel(new FlowLayout(FlowLayout.LEFT));
            p4.add(lblSex);
            p4.add(rb1);
            p4.add(rb2);
            p.add(p4);
            JPanel p5 = new JPanel(new FlowLayout(FlowLayout.LEFT));
            p5.add(lblHobby);
            p5.add(ckb1);
            p5.add(ckb2);
            p5.add(ckb3);
            p5.add(ckb4);
            p.add(p5);
            JPanel p6 = new JPanel(new FlowLayout(FlowLayout.LEFT));
            p6.add(lblAdress);
            p6.add(txtAdress);
            p.add(p6);
            JPanel p7 = new JPanel(new FlowLayout(FlowLayout.LEFT));
            p7.add(lblDegree);
            p7.add(cmb1);
            p.add(p7);
            JPanel p8 = new JPanel(new FlowLayout(FlowLayout.LEFT));
            p8.add(btn1);
            p8.add(btn2);
            p.add(p8);
            
            this.add(p);
            this.setSize(310,350);
            this.setLocation(200,300);
            this.setVisible(true);
        }
    
    class RegisterListener implements ActionListener{
            public void actionPerformed(ActionEvent e) {
            String Username = txtName.getText().trim();
            String Password = new String(txtPwd.getPassword());
            String rePassword = new String(txtRePwd.getPassword());
         
           int Sex = Integer.parseInt(rb2.isSelected() ? "0" : "1");
           String Hobby = (ckb1.isSelected() ? "阅读" : "") + (ckb2.isSelected() ? "上网" : "") +
           (ckb3.isSelected() ? "游泳" : "") + (ckb4.isSelected() ? "旅游" : "");
           String Address = txtAdress.getText().trim(); 
           String Degree = cmb1.getSelectedItem().toString().trim();
              
           if(Password.equals(rePassword)) {
            User = new User(Username,Password,rePassword,Sex,Hobby,Address,Degree);
              if(userService.saveUser(User)) {
                System.out.println("注册成功");
               }else {
                System.out.println("注册失败!");
               }
              }else {
               System.out.println("两次输入的密码不一致!");
              }
          } 
    }
      
    class ResetListener implements ActionListener{
        public void actionPerformed(ActionEvent e) {
            txtName.setText("");
            txtPwd.setText("");
            txtRePwd.setText("");
            
            rb1.setSelected(false);
            rb2.setSelected(false);
            ckb1.setSelected(false);
            ckb2.setSelected(false);
            ckb3.setSelected(false);
            ckb4.setSelected(false);
            
            txtAdress.setText("");
            cmb1.setSelectedItem(0);
           }
    }
    
    public static void main(String[] args) {
        new Sy1_1();
    }
}


(2)DBUtil

import java.sql.*;
public class DBUtil {
    Connection con = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    public Connection getConnection() throws ClassNotFoundException,SQLException,InstantiationException,IllegalAccessException{
        String driver = Config.getValue("driver");
        String url = Config.getValue("url");
        String user = Config.getValue("user");
        String pwd = Config.getValue("pwd");
        Class.forName(driver);
        con = DriverManager.getConnection(url,user,pwd);
        return con;
    }
    public void closeAll() {
        if(rs!=null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(pstmt!=null) {
            try {
                pstmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(con!=null) {
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    public ResultSet executeQuery(String preparedSql,Object[] param) {
        try {
            pstmt = con.prepareStatement(preparedSql);
            if(param!=null) {
                for(int i =0;i<param.length;i++) {
                    pstmt.setObject(i+1, param[i]);
                }
            }
            rs = pstmt.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return rs;
    }
    public int executeUpdate(String preparedSql,Object[] param) {
        int n = 0;
        try {
            pstmt = con.prepareStatement(preparedSql);
            if(param!=null) {
                for(int i =0;i<param.length;i++) {
                    pstmt.setObject(i+1, param[i]);
                }
            }
            n = pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return n;
    }
    public static void main(String[] args) {
    }
}

User

package ex1;

public class User {
    int id;
    String Username;
    String Password;
    String rePassword;
    int Sex;
    String Hobby;
    String Address;
    String Degree;
    
    public User() {
    }
    public User(String Username, String Password, String rePassword, int Sex, String Hobby, String Address, String Degree) {
        this.Username = Username;
        this.Password = Password;
        this.rePassword = rePassword;
        this.Sex = Sex;
        this.Hobby = Hobby;
        this.Address = Address;
        this.Degree = Degree;
    }
    public User(int id, String Username, String Password, String rePassword, int Sex, String Hobby, String Address, String Degree) {
        this.id = id;
        this.Username = Username;
        this.Password = Password;
        this.rePassword = rePassword;
        this.Sex = Sex;
        this.Hobby = Hobby;
        this.Address = Address;
        this.Degree = Degree;
    }
    public Object getUsername() {
        this.Username = Username;
        return null;
    }
    public Object getPassword() {
        this.Password = Password;
        return null;
    }
    public Object getRepassword() {
        this.rePassword = rePassword;
        return null;
    }
    public Object getSex() {
        this.Sex = Sex;
        return null;
    }
    public Object getHobby() {
        this.Hobby = Hobby;
        return null;
    }
    public Object getAddress() {
        this.Address = Address;
        return null;
    }
    public Object getDegree() {
        this.Degree = Degree;
        return null;
    }
}


UserService

import java.sql.ResultSet;
import ex1.User;

public class UserService {
    public User findUserByName(String userName) {
        DBUtil db = new DBUtil();
        User user = null;
        try {
        db.getConnection();
        String sql = "select * from user where Username = ?";
        Object[] param = new Object[] {userName};
            ResultSet rs = db.executeQuery(sql, param);
            if(rs.next()) {
                user = new User(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getInt(5),
                        rs.getString(6),rs.getString(7),rs.getString(8));
            }
        }catch(Exception e) {
            e.printStackTrace();
        }finally {
            db.closeAll();
        }
        return user;
    }
    
    public boolean saveUser(User user) {
        boolean r = false;
        DBUtil db = new DBUtil();
        try {
            db.getConnection();
            String sql = "insert into user(id,Username,Password,rePassword,Sex,Hobby,Address,Degree)values(SEQ_USER.NEXTVAL,?,?,?,?,?,?,?)";
            Object[] param = new Object[] {user.getUsername(),user.getPassword(),user.getRepassword(),user.getSex(),user.getHobby(),user.getAddress(),user.getDegree()};
            if(db.executeUpdate(sql, param)>0) {
                r = true;
            }
        }catch(Exception e) {
            e.printStackTrace();
        }finally {
            db.closeAll();
        }
        return r;
    }
}


结果报错:

img

  • 写回答

1条回答 默认 最新

  • 阳光宅男xxb 2023-05-12 08:42
    关注

    user.getUsername少了括号:user.getUsername()

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月25日
  • 修改了问题 5月18日
  • 专家已采纳回答 5月17日
  • 修改了问题 5月11日
  • 展开全部

悬赏问题

  • ¥15 FileNotFoundError 解决方案
  • ¥15 uniapp实现如下图的图表功能
  • ¥15 u-subsection如何修改相邻两个节点样式
  • ¥30 vs2010开发 WFP(windows filtering platform)
  • ¥15 服务端控制goose报文控制块的发布问题
  • ¥15 学习指导与未来导向啊
  • ¥15 求多普勒频移瞬时表达式
  • ¥15 如果要做一个老年人平板有哪些需求
  • ¥15 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标