⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jtableappframe.java~128~

📁 jtable 数据库的一个小例子
💻 JAVA~128~
字号:
package jtabletest;

import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import java.awt.Rectangle;
import javax.swing.JTable;
import java.util.Vector;
import java.sql.*;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.Font;
import java.awt.Color;
import javax.swing.JOptionPane;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class JTableAppFrame extends JFrame {
    JPanel contentPane;
    JScrollPane spl_Student = new JScrollPane();
    JTable tab_Student = new JTable();
    Vector veInfomation = new Vector();
    Vector veTitle = new Vector();
    DBCON d = new DBCON();
    JLabel lbl_name = new JLabel();
    JLabel lbl_age = new JLabel();
    JLabel lbl_address = new JLabel();
    JTextField txt_name = new JTextField();
    JTextField txt_age = new JTextField();
    JTextField txt_address = new JTextField();
    JButton btn_add = new JButton();
    JButton btn_update = new JButton();
    JButton btn_del = new JButton();
    JButton btn_reset = new JButton();
    public JTableAppFrame() {
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    /**
     * Component initialization.
     *
     * @throws java.lang.Exception
     */
    private void jbInit() throws Exception {
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(null);
        setSize(new Dimension(400, 300));
        setTitle("Frame Title");
        spl_Student.setBounds(new Rectangle(26, 20, 346, 152));
        lbl_name.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
        lbl_name.setText("姓名:");
        lbl_name.setBounds(new Rectangle(2, 184, 42, 15));
        lbl_age.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
        lbl_age.setText("年龄:");
        lbl_age.setBounds(new Rectangle(134, 184, 42, 15));
        lbl_address.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
        lbl_address.setText("地址:");
        lbl_address.setBounds(new Rectangle(263, 184, 42, 15));
        txt_name.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
        txt_name.setForeground(Color.blue);
        txt_name.setBounds(new Rectangle(53, 184, 77, 20));
        txt_age.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
        txt_age.setForeground(Color.blue);
        txt_age.setBounds(new Rectangle(181, 184, 77, 20));
        txt_address.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
        txt_address.setForeground(Color.blue);
        txt_address.setBounds(new Rectangle(312, 184, 77, 20));
        btn_add.setBounds(new Rectangle(3, 220, 81, 23));
        btn_add.setFont(new java.awt.Font("楷体_GB2312", Font.BOLD, 13));
        btn_add.setText("添  加");
        btn_add.addActionListener(new JTableAppFrame_btn_add_actionAdapter(this));
        btn_update.setBounds(new Rectangle(102, 220, 81, 23));
        btn_update.setFont(new java.awt.Font("楷体_GB2312", Font.BOLD, 13));
        btn_update.setText("修  改");
        btn_update.addActionListener(new
                                     JTableAppFrame_btn_update_actionAdapter(this));
        btn_del.setBounds(new Rectangle(202, 220, 81, 23));
        btn_del.setFont(new java.awt.Font("楷体_GB2312", Font.BOLD, 13));
        btn_del.setText("删  除");
        btn_del.addActionListener(new JTableAppFrame_btn_del_actionAdapter(this));
        btn_reset.setBounds(new Rectangle(307, 220, 81, 23));
        btn_reset.setFont(new java.awt.Font("楷体_GB2312", Font.BOLD, 13));
        btn_reset.setText("重  置");
        btn_reset.addActionListener(new JTableAppFrame_btn_reset_actionAdapter(this));
        contentPane.add(spl_Student);
        contentPane.add(lbl_name);
        contentPane.add(txt_name);
        contentPane.add(lbl_age);
        contentPane.add(txt_age);
        contentPane.add(lbl_address);
        contentPane.add(txt_address);
        contentPane.add(btn_add);
        contentPane.add(btn_update);
        contentPane.add(btn_del);
        contentPane.add(btn_reset);
        this.showStudent();
        tab_Student = new JTable(veInfomation, veTitle);
        spl_Student.getViewport().add(tab_Student);
    }

    /*在 Table 中显示信息*/
    void showStudent() {
        veTitle.add("姓名");
        veTitle.add("年龄");
        veTitle.add("地址");
        d.connect();
        try {
            ResultSet rs = d.sta.executeQuery("select * from Student");
            while (rs.next()) {
                Vector ve = new Vector();
                ve.add(0, rs.getString(2));
                ve.add(1, rs.getInt(3));
                ve.add(2, rs.getString(4));
                veInfomation.add(ve);
            }
        } catch (SQLException ex) {
            System.out.println("添加信息发生异常:" + ex.getMessage());
        }
    }

    /*
     插入
     */
    public void btn_add_actionPerformed(ActionEvent e) {
        d.connect();
        this.txt_age.setEditable(true);
        this.txt_address.setEditable(true);
        String name = this.txt_name.getText();
        String age = this.txt_age.getText();
        String address = this.txt_address.getText();

        if (name.equals("")) {
            JOptionPane.showMessageDialog(this, "您好!请输入姓名!", "提示", 1);
            this.txt_name.grabFocus();
            return;
        }

        if (age.equals("")) {
            JOptionPane.showMessageDialog(this, "您好!请输入年龄!", "提示", 1);
            this.txt_age.grabFocus();
            return;
        }

        char[] ans = age.toCharArray();
        for (int i = 0; i < ans.length; i++) {
            if (!Character.isDigit(ans[i])) {
                JOptionPane.showMessageDialog(this, "您好!您所输入的年龄无效!\n请输入数字!",
                                              "提示", 2);
                this.txt_age.setText("");
                this.txt_age.grabFocus();
                return;
            }
        }

        if (ans.length > 3) {
            JOptionPane.showMessageDialog(this, "您好!您所输入的年龄超出了范围!", "提示", 2);
            this.txt_age.setText("");
            this.txt_age.grabFocus();
            return;
        }

        if (address.equals("")) {
            JOptionPane.showMessageDialog(this, "您好!请输入您的住址!", "提示", 1);
            this.txt_address.grabFocus();
            return;
        }

        int ages = Integer.valueOf(age);
        d.insert(name, ages, address);
        JOptionPane.showMessageDialog(this, "恭喜!添加数据成功!", "消息", 1);
        this.veInfomation.clear();
        this.showStudent();
        this.tab_Student.updateUI();
    }

    /*修改*/
    Statement sta;
    ResultSet rs;
    PreparedStatement ps, ps1;
    public void btn_update_actionPerformed(ActionEvent e) {
        d.connect();

        String name = this.txt_name.getText();
        String age = this.txt_age.getText();
        String address = this.txt_address.getText();

        if (name.equals("")) {
            JOptionPane.showMessageDialog(this, "您好!请输入姓名!", "提示", 1);
            this.txt_name.grabFocus();
            return;
        }

        try {
            sta = d.con.createStatement();
            rs = sta.executeQuery(
                    "select * from Student where name='" + name + "'");
            if (!rs.next()) {
                JOptionPane.showMessageDialog(this, "您好!该学员不存在!", "提示", 2);
                this.txt_name.setText("");
                this.txt_name.grabFocus();
                return;
            }
        } catch (SQLException ex) {
            System.out.println("检查学员是否存在发生异常:" + ex.getMessage());
        } finally {
            try {
                rs.close();
                sta.close();
            } catch (SQLException ex2) {
                System.out.println("关闭连接发生异常:" + ex2.getMessage());
            }

        }

        if (age.equals("")) {
            JOptionPane.showMessageDialog(this, "您好!请输入年龄!", "提示", 1);
            this.txt_age.grabFocus();
            return;
        }

        char[] ans = age.toCharArray();
        for (int i = 0; i < ans.length; i++) {
            if (!Character.isDigit(ans[i])) {
                JOptionPane.showMessageDialog(this, "您好!您所输入的年龄无效!\n请输入数字!",
                                              "提示", 2);
                this.txt_age.setText("");
                this.txt_age.grabFocus();
                return;
            }
        }

        if (ans.length > 3) {
            JOptionPane.showMessageDialog(this, "您好!您所输入的年龄超出了范围!", "提示", 2);
            this.txt_age.setText("");
            this.txt_age.grabFocus();
            return;
        }

        if (address.equals("")) {
            JOptionPane.showMessageDialog(this, "您好!请输入您的住址!", "提示", 1);
            this.txt_address.grabFocus();
            return;
        }
        int ages = Integer.valueOf(age);
        try {
            ps = d.con.prepareStatement(
                    "update Student set age=?,address=? where name=?");
            ps.setInt(1, ages);
            ps.setString(2, address);
            ps.setString(3, name);
            ps.executeUpdate();
        } catch (SQLException ex1) {
            System.out.println("更新数据发生异常:" + ex1.getMessage());
        } finally {
            try {
                ps.close();
            } catch (SQLException ex3) {
                System.out.println("关闭连接发生异常:" + ex3.getMessage());
            }
        }
        JOptionPane.showMessageDialog(this, "恭喜!信息更新成功", "消息", 1);
        this.veInfomation.clear();
        this.showStudent();
        this.tab_Student.updateUI();
        this.btn_reset_actionPerformed(e);
    }

    /*删除*/
    public void btn_del_actionPerformed(ActionEvent e) {
        this.txt_age.setEditable(false);
        this.txt_address.setEditable(false);
        String name = this.txt_name.getText();
        if (name.equals("")) {
            JOptionPane.showMessageDialog(this, "您好!请输入姓名!", "提示", 1);
            this.txt_name.grabFocus();
            return;
        }

        try {
            ps1 = d.con.prepareStatement("select * from Student where name=?");
            ps1.setString(1, name);
            rs = ps1.executeQuery();
            if (rs.next()) {
                ps1.close();
                ps = d.con.prepareStatement("delete from Student where name =?");
                ps.setString(1, name);
                ps.executeUpdate();
            } else {
                JOptionPane.showMessageDialog(this, "您好!该学员不存在!", "提示", 2);
                this.txt_name.setText("");
                this.txt_name.grabFocus();
                return;
            }
        } catch (SQLException ex) {
            System.out.println("删除信息发生异常:" + ex.getMessage());
            ex.printStackTrace();
        }
        JOptionPane.showMessageDialog(this, "恭喜!删除信息成功!", "消息", 1);
        this.veInfomation.clear();
        this.showStudent();
        this.tab_Student.updateUI();
        this.btn_reset_actionPerformed(e);
    }

    public void btn_reset_actionPerformed(ActionEvent e) {
        this.txt_name.setText("");
        this.txt_age.setText("");
        this.txt_address.setText("");
        this.txt_name.grabFocus();
    }
}


class JTableAppFrame_btn_reset_actionAdapter implements ActionListener {
    private JTableAppFrame adaptee;
    JTableAppFrame_btn_reset_actionAdapter(JTableAppFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.btn_reset_actionPerformed(e);
    }
}


class JTableAppFrame_btn_update_actionAdapter implements ActionListener {
    private JTableAppFrame adaptee;
    JTableAppFrame_btn_update_actionAdapter(JTableAppFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.btn_update_actionPerformed(e);
    }
}


class JTableAppFrame_btn_del_actionAdapter implements ActionListener {
    private JTableAppFrame adaptee;
    JTableAppFrame_btn_del_actionAdapter(JTableAppFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.btn_del_actionPerformed(e);
    }
}


class JTableAppFrame_btn_add_actionAdapter implements ActionListener {
    private JTableAppFrame adaptee;
    JTableAppFrame_btn_add_actionAdapter(JTableAppFrame adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.btn_add_actionPerformed(e);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -