import javax.swing.ButtonGroup;
import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JRadioButton;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;public class MyFrame extends JFrame implements ActionListener {
private JPanel panel = null; private JPanel sePanel = null; private JPanel hoPanel = null; private JPanel buPanel = null; private JPanel buPanel2 = null; private JPanel buPanel3 = null; //姓名 private JLabel tilabel = null; private JLabel naLabel = null; private JTextField naTextField = null; //密码 private JLabel paLabel = null; private JPasswordField passwordField = null; private JLabel paLabel2 = null; private JPasswordField passwordField2 = null; //性别 控制单选用ButtonGroup private JLabel seLabel = null; private JRadioButton maRadioButton = null; private JRadioButton feRadioButton = null; private ButtonGroup buttonGroup = null; //爱好 private JLabel hoLabel = null; private JCheckBox eaCheckBox = null; private JCheckBox spCheckBox = null; private JCheckBox slCheckBox = null; //籍贯 下拉功能用Combobox private JLabel adLabel = null; private JComboBox comboBox = null; //自我介绍 private JLabel shLabel = null; private JTextArea textArea = null; private JScrollPane scrollPane = null; //增删改查 提交 重置 private JButton adButton = null; private JButton deButton = null; private JButton alButton = null; private JButton quButton = null; private JButton suButton = null; private JButton reButton = null; private void init() { this.setTitle("注册页面"); this.setDefaultCloseOperation(this.EXIT_ON_CLOSE); Container content = this.getContentPane(); this.panel = new JPanel(new GridBagLayout()); content.add(panel); GridBagConstraints gbc = new GridBagConstraints(); //标头 this.tilabel = new JLabel("金智用户注册"); this.tilabel.setFont(new Font("宋体", Font.BOLD, 26)); gbc.gridx = 1; gbc.gridy = 0; this.panel.add(this.tilabel, gbc); //位置居右 gbc.anchor = GridBagConstraints.EAST; //用户名 this.naLabel = new JLabel("用户名:"); this.naLabel.setFont(new Font("宋体", Font.BOLD, 20)); gbc.gridx = 0; gbc.gridy = 1; this.panel.add(this.naLabel, gbc); this.naTextField = new JTextField(16); gbc.gridx = 1; gbc.gridy = 1; this.panel.add(this.naTextField, gbc); //密码1次 this.paLabel = new JLabel("密 码:"); this.paLabel.setFont(new Font("宋体", Font.BOLD, 20)); gbc.gridx = 0; gbc.gridy = 2; this.panel.add(this.paLabel, gbc); this.passwordField = new JPasswordField(16); gbc.gridx = 1; gbc.gridy = 2; this.panel.add(this.passwordField, gbc); //密码2次 this.paLabel2 = new JLabel("密 码2:"); this.paLabel2.setFont(new Font("宋体", Font.BOLD, 20)); gbc.gridx = 0; gbc.gridy = 3; this.panel.add(this.paLabel2, gbc); this.passwordField2 = new JPasswordField(16); gbc.gridx = 1; gbc.gridy = 3; this.panel.add(this.passwordField2, gbc); //性别 this.seLabel = new JLabel("性 别:"); this.seLabel.setFont(new Font("宋体", Font.BOLD, 20)); gbc.gridx = 0; gbc.gridy = 4; this.panel.add(this.seLabel, gbc); this.maRadioButton = new JRadioButton("男", true); this.maRadioButton.setFont(new Font("宋体", Font.BOLD, 20)); this.feRadioButton = new JRadioButton("女"); this.feRadioButton.setFont(new Font("宋体", Font.BOLD, 20)); this.sePanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 28, 0)); this.sePanel.add(maRadioButton); this.sePanel.add(feRadioButton); this.buttonGroup = new ButtonGroup(); this.buttonGroup.add(maRadioButton); this.buttonGroup.add(feRadioButton); gbc.gridx = 1; gbc.gridy = 4; this.panel.add(this.sePanel, gbc); //爱好 this.hoLabel = new JLabel("爱 好:"); this.hoLabel.setFont(new Font("宋体", Font.BOLD, 20)); gbc.gridx = 0; gbc.gridy = 5; this.panel.add(this.hoLabel, gbc); this.hoPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0)); this.eaCheckBox = new JCheckBox("吃饭"); this.eaCheckBox.setFont(new Font("宋体", Font.BOLD, 16)); this.spCheckBox = new JCheckBox("运动"); this.spCheckBox.setFont(new Font("宋体", Font.BOLD, 16)); this.slCheckBox = new JCheckBox("睡觉"); this.slCheckBox.setFont(new Font("宋体", Font.BOLD, 16)); this.hoPanel.add(eaCheckBox); this.hoPanel.add(spCheckBox); this.hoPanel.add(slCheckBox); gbc.gridx = 1; gbc.gridy = 5; this.panel.add(this.hoPanel, gbc); //籍贯 this.adLabel = new JLabel("籍 贯:"); this.adLabel.setFont(new Font("宋体", Font.BOLD, 20)); gbc.gridx = 0; gbc.gridy = 6; this.panel.add(this.adLabel, gbc); String[] add = {"西安", "北京", "上海", "广州"}; this.comboBox = new JComboBox(add); this.comboBox.setFont(new Font("宋体", Font.BOLD, 20)); this.comboBox.setPreferredSize(new Dimension(176, 22)); gbc.gridx = 1; gbc.gridy = 6; this.panel.add(this.comboBox, gbc); //自我介绍 this.shLabel = new JLabel("介 绍:"); this.shLabel.setFont(new Font("宋体", Font.BOLD, 20)); gbc.gridx = 0; gbc.gridy = 7; this.panel.add(this.shLabel, gbc); this.textArea = new JTextArea("请在这里写你的自我介绍", 10, 22); this.textArea.setFont(new Font("宋体", Font.BOLD, 14)); this.scrollPane = new JScrollPane(textArea); gbc.gridx = 1; gbc.gridy = 7; this.panel.add(this.scrollPane, gbc); //增删改查 this.buPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT, 0, 0)); this.adButton = new JButton("增"); this.adButton.addActionListener(this); this.buPanel.add(this.adButton); gbc.gridx = 0; gbc.gridy = 8; this.panel.add(this.buPanel, gbc); this.buPanel2 = new JPanel(new FlowLayout(FlowLayout.LEFT, 10, 0)); this.deButton = new JButton("删"); this.deButton.addActionListener(this); this.alButton = new JButton("改"); this.alButton.addActionListener(this); this.quButton = new JButton("查"); this.quButton.addActionListener(this); this.buPanel2.add(this.deButton); this.buPanel2.add(this.alButton); this.buPanel2.add(this.quButton); gbc.gridx = 1; gbc.gridy = 8; this.panel.add(this.buPanel2, gbc); //提交和重置 this.buPanel3 = new JPanel(new FlowLayout(FlowLayout.CENTER, 16 , 0)); this.suButton = new JButton("提交"); this.suButton.addActionListener(this); this.reButton = new JButton("重置"); this.reButton.addActionListener(this); this.buPanel3.add(suButton); this.buPanel3.add(reButton); gbc.gridx = 1; gbc.gridy = 9; this.panel.add(this.buPanel3, gbc); } public MyFrame() { this.init(); } public static void main(String[] args) { MyFrame frame = new MyFrame(); frame.setBounds(100, 20, 400, 600); frame.setVisible(true); } @Override public void actionPerformed(ActionEvent e) { //声明数据库的三个对象, Connection conn = null;//连接对象 Statement sta = null;//执行对象 ResultSet rs = null;//结果集对象 //增加一条记录开始*********************************************** //首先必须查数据库看有没有主键相同的,有的话提醒用户,不能插入同名的两条记录。 if(e.getSource() == this.adButton) { //获取姓名 String username = this.naTextField.getText(); //校验姓名 if(username != null && username.length() <= 0) { JOptionPane.showMessageDialog(this, "用户名不能为空!", "提示框", JOptionPane.WARNING_MESSAGE); return; } //获取一次密码 String password1 = String.valueOf(this.passwordField.getPassword()); //获取二次密码 String password2 = String.valueOf(this.passwordField2.getPassword()); //校验密码 if(password1 != null && password1.length() <= 0 ) { JOptionPane.showMessageDialog(this, "密码不能为空"); return; } if(password2 != null && password2.length() <= 0) { JOptionPane.showMessageDialog(this, "密码不能为空"); return; } if(!(password1.equals(password2))) { JOptionPane.showMessageDialog(this, "两次密码不一致,请重新输入二次密码"); return; } //获取性别 String sex = null; if(this.maRadioButton.isSelected()) { sex = "男"; } else { sex = "女"; } //获取爱好 String eat = null; if(this.eaCheckBox.isSelected()) { eat = "吃饭"; } String sport = null; if(this.spCheckBox.isSelected()) { sport = "运动"; } String sleep = null; if(this.slCheckBox.isSelected()) { sleep = "睡觉"; } //获取户籍地String address = this.comboBox.getSelectedItem().toString();
//获取自我介绍 String showMe = this.textArea.getText(); //拼接增加记录的Sql String addSql = "insert into userTable values('"+username+"', '"+password1+"', '"+sex+"'," + " '"+eat+"', '"+sport+"', '"+sleep+"'," + " '"+address+"', '"+showMe+"')"; String queSql = "select * from userTable where nameuser = '"+username+"'"; //连接数据库 try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=student", "sa", "sa"); sta = conn.createStatement(); rs = sta.executeQuery(queSql); if(rs.next() == true) { JOptionPane.showMessageDialog(this, "数据库中已存在此人,不能重复插入"); return; } int a = sta.executeUpdate(addSql); if(a > 0) { JOptionPane.showMessageDialog(this, "恭喜您,插入记录成功!"); } } catch (ClassNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } finally { try { if(rs != null) { rs.close(); rs = null; } if(sta != null) { sta.close(); sta = null; } if(conn != null) { conn.close(); conn = null; } } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } //清空表单内的数据 this.naTextField.setText(""); this.passwordField.setText(""); this.passwordField2.setText(""); //默认选择男生 this.maRadioButton.setSelected(true); this.eaCheckBox.setSelected(false); this.spCheckBox.setSelected(false); this.slCheckBox.setSelected(false); this.comboBox.setSelectedItem("西安"); this.textArea.setText("请在这里写你的自我介绍"); //删除一条记录开始********************************************** } else if(e.getSource() == this.deButton) { //根据姓名来删除记录,没有就提示数据库没有 String username = JOptionPane.showInputDialog("请输入您要删除的名字"); //查询数据库 String queSql = "select * from userTable where nameuser = '"+username+"'"; String delSql = "delete from userTable where nameuser = '"+username+"'"; //连接数据库 try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=student", "sa", "sa"); sta = conn.createStatement(); rs = sta.executeQuery(queSql); //校验看数据库是否有此人 if(rs.next() == false) { JOptionPane.showMessageDialog(this, "查无此人,请您核对后再输入"); } else { int d = sta.executeUpdate(delSql); if(d > 0) { JOptionPane.showMessageDialog(this, "删除记录成功"); } } } catch (ClassNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } finally { try { if(rs != null) { rs.close(); rs = null; } if(sta != null) { sta.close(); sta = null; } if(conn != null) { conn.close(); conn = null; } } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } //修改一条记录开始*************************************************** } else if(e.getSource() == this.alButton) { //根据姓名来删除记录,没有就提示数据库没有 String username = JOptionPane.showInputDialog("请输入您要修改的名字"); //查询数据库 String queSql = "select * from userTable where nameuser = '"+username+"'"; //连接数据库 try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=student", "sa", "sa"); sta = conn.createStatement(); //可以两次的执行同一个SQL语句 rs = sta.executeQuery(queSql); //校验,如果数据库里没有此人,则弹框说明 if(rs.next() == false) { JOptionPane.showMessageDialog(this, "查无此人,请核对后再次输入"); } //从数据库取出数据放在表单上 rs = sta.executeQuery(queSql); while(rs.next()) { this.naTextField.setText(rs.getString("nameuser")); this.passwordField.setText(rs.getString("userPassword")); this.passwordField2.setText(rs.getString("userPassword")); //性别 if(rs.getString("userSex").equals("男")) { this.maRadioButton.setSelected(true); } else { this.feRadioButton.setSelected(true); } //爱好 if(rs.getString("userEat").equals("吃饭")) { this.eaCheckBox.setSelected(true); } if(rs.getString("userSport").equals("运动")) { this.spCheckBox.setSelected(true); } if(rs.getString("userSleep").equals("睡觉")) { this.slCheckBox.setSelected(true); } //籍贯 if(rs.getString("userAdress").equals("西安")) { this.comboBox.setSelectedItem("西安"); } else if(rs.getString("userAdress").equals("北京")) { this.comboBox.setSelectedItem("北京"); } else if(rs.getString("userAdress").equals("上海")) { this.comboBox.setSelectedItem("上海"); } else if(rs.getString("userAdress").equals("广州")) { this.comboBox.setSelectedItem("广州"); } //自我介绍 this.textArea.setText(rs.getString("userShow")); JOptionPane.showMessageDialog(this, "每次修改完记录请提交表单"); } } catch (ClassNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } finally { try { if(rs != null) { rs.close(); rs = null; } if(sta != null) { sta.close(); sta = null; } if(conn != null) { conn.close(); conn = null; } } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } //查询一条记录开始*************************************************** } else if(e.getSource() == this.quButton) { //根据姓名来删除记录, String username = JOptionPane.showInputDialog("请输入您要查询的名字"); //查询数据库 String queSql = "select * from userTable where nameuser = '"+username+"'"; //连接数据库 try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=student", "sa", "sa"); sta = conn.createStatement(); rs = sta.executeQuery(queSql); if(rs.next() == false) { JOptionPane.showMessageDialog(this, "查无此人,请核对后再次输入"); } rs = sta.executeQuery(queSql); //从数据库中查出数据放在页面上 while(rs.next()) { this.naTextField.setText(rs.getString("nameuser")); this.passwordField.setText(rs.getString("userPassword")); this.passwordField2.setText(rs.getString("userPassword")); //性别 if(rs.getString("userSex").equals("男")) { this.maRadioButton.setSelected(true); } else { this.feRadioButton.setSelected(true); } //爱好 if(rs.getString("userEat").equals("吃饭")) { this.eaCheckBox.setSelected(true); } if(rs.getString("userSport").equals("运动")) { this.spCheckBox.setSelected(true); } if(rs.getString("userSleep").equals("睡觉")) { this.slCheckBox.setSelected(true); } //籍贯 if(rs.getString("userAdress").equals("西安")) { this.comboBox.setSelectedItem("西安"); } else if(rs.getString("userAdress").equals("北京")) { this.comboBox.setSelectedItem("北京"); } else if(rs.getString("userAdress").equals("上海")) { this.comboBox.setSelectedItem("上海"); } else if(rs.getString("userAdress").equals("广州")) { this.comboBox.setSelectedItem("广州"); } //自我介绍 this.textArea.setText(rs.getString("userShow")); JOptionPane.showMessageDialog(this, "每次查询完记录请重置表单"); } } catch (ClassNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } finally { try { if(rs != null) { rs.close(); rs = null; } if(sta != null) { sta.close(); sta = null; } if(conn != null) { conn.close(); conn = null; } } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } //提交表单记录******************************************************* //思想先查数据库如果没有主键重复,直接新增一条,如果有先把主键相同的删除,然后把 //修改后的一条记录插入到数据库里 } else if(e.getSource() == this.suButton) { //获取姓名 String username = this.naTextField.getText(); //校验姓名 if(username != null && username.length() <= 0) { JOptionPane.showMessageDialog(this, "用户名不能为空!", "提示框", JOptionPane.WARNING_MESSAGE); return; } //获取一次密码 String password1 = String.valueOf(this.passwordField.getPassword()); //获取二次密码 String password2 = String.valueOf(this.passwordField2.getPassword()); //校验密码 if(password1 != null && password1.length() <= 0 ) { JOptionPane.showMessageDialog(this, "密码不能为空"); return; } if(password2 != null && password2.length() <= 0) { JOptionPane.showMessageDialog(this, "密码不能为空"); return; } if(!(password1.equals(password2))) { JOptionPane.showMessageDialog(this, "两次密码不一致,请重新输入二次密码"); return; } //获取性别 String sex = null; if(this.maRadioButton.isSelected()) { sex = "男"; } else { sex = "女"; } //获取爱好 String eat = null; if(this.eaCheckBox.isSelected()) { eat = "吃饭"; } String sport = null; if(this.spCheckBox.isSelected()) { sport = "运动"; } String sleep = null; if(this.slCheckBox.isSelected()) { sleep = "睡觉"; } //获取户籍地 String address = this.comboBox.getSelectedItem().toString(); //获取自我介绍 String showMe = this.textArea.getText(); //拼接增加记录的Sql String addSql = "insert into userTable values('"+username+"', '"+password1+"', '"+sex+"'," + " '"+eat+"', '"+sport+"', '"+sleep+"'," + " '"+address+"', '"+showMe+"')"; //检验数据库中是否已存在的主键相同的记录,如果有则不能插入 String queSql = "select * from userTable where nameuser = '"+username+"'"; //连接数据库 try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=student", "sa", "sa"); sta = conn.createStatement(); //校验 rs = sta.executeQuery(queSql); if(rs.next() == true) { JOptionPane.showMessageDialog(this, "数据库中已存在此人,不能重复插入"); return; } int a = sta.executeUpdate(addSql); if(a > 0) { JOptionPane.showMessageDialog(this, "恭喜您,提交成功!"); } } catch (ClassNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } finally { try { if(rs != null) { rs.close(); rs = null; } if(sta != null) { sta.close(); sta = null; } if(conn != null) { conn.close(); conn = null; } } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } //清空表单内的数据 this.naTextField.setText(""); this.passwordField.setText(""); this.passwordField2.setText(""); //默认选择男生 this.maRadioButton.setSelected(true); this.eaCheckBox.setSelected(false); this.spCheckBox.setSelected(false); this.slCheckBox.setSelected(false); this.comboBox.setSelectedItem("西安"); this.textArea.setText("请在这里写你的自我介绍"); //重置表单内容******************************************************* } else if(e.getSource() == this.reButton) { //清空表单内的数据 this.naTextField.setText(""); this.passwordField.setText(""); this.passwordField2.setText(""); //默认选择男生 this.maRadioButton.setSelected(true); this.eaCheckBox.setSelected(false); this.spCheckBox.setSelected(false); this.slCheckBox.setSelected(false); this.comboBox.setSelectedItem("西安"); this.textArea.setText("请在这里写你的自我介绍"); } } }