📄 jtableappframe.java~130~
字号:
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();
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;
}
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 + -