实现添加功能
Test.java
~~~
package studysystem;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;
public class Test extends JFrame implements ActionListener
{
JPanel mb1,mb2;
JLabel bq1;//标签
JTextField wbk1;//文本框
JButton an1,an2,an3,an4;//按钮
JTable bg1; //表格
JScrollPane gd1;//滚动条
Xsxx xsxx2;
public static void main(String[] args)
{
Test xs=new Test();
}
public Test()
{
mb1=new JPanel();
bq1=new JLabel("请输入姓名");
wbk1=new JTextField(10);
an1=new JButton("查询");
an1.addActionListener(this);
an1.setActionCommand("chaxun");
mb1.add(bq1); mb1.add(wbk1); mb1.add(an1);
mb2=new JPanel();
an2=new JButton("添加");
an2.addActionListener(this);
an2.setActionCommand("tianjia");
an3=new JButton("修改");
an3.addActionListener(this);
an3.setActionCommand("xiugai");
an4=new JButton("删除");
an4.addActionListener(this);
an4.setActionCommand("shanchu");
mb2.add(an2); mb2.add(an3); mb2.add(an4);
xsxx2=new Xsxx();
bg1=new JTable(xsxx2);
//JTable 后面的括号先记录后字段
//bg1=new JTable(jilu,ziduan);
gd1=new JScrollPane(bg1);
this.add(gd1);
this.add(mb1,"North");
this.add(mb2,"South");
this.setTitle("学生管理系统");
this.setSize(500,400);
this.setLocation(201,181);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("chaxun"))
{
//System.out.println("aaa");
String xingming=this.wbk1.getText().trim();
String sql="select * from xuesheng where xingming='"+xingming+"'";
xsxx2=new Xsxx(sql);
bg1.setModel(xsxx2);
}
else if(e.getActionCommand().equals("tianjia"))
{
//System.out.println("bbb");
//参数中的true为打开新的窗口,父窗口不可编辑
Tianjia tj=new Tianjia(this,"添加学生信息",true);
xsxx2=new Xsxx();
bg1.setModel(xsxx2);
}
else if(e.getActionCommand().equals("xiugai"))
{
System.out.println("ccc");
}
else if(e.getActionCommand().equals("shanchu"))
{
System.out.println("ddd");
}
}
}
~~~
Xsxx.java
~~~
package studysystem;
import java.sql.*;
import java.util.*;
import javax.swing.table.*;
class Xsxx extends AbstractTableModel
{
Vector ziduan,jilu;//字段和记录两个集合类
PreparedStatement ps=null;
Connection ct=null; //声明Connection对象
ResultSet rs=null;//声明ResultSet类,用来存放获取的结果集!!
public int getRowCount()
{
return this.jilu.size();
}
public int getColumnCount()
{
return this.ziduan.size();
}
public Object getValueAt(int hang, int lie)
{
return ((Vector)this.jilu.get(hang)).get(lie);
}
public Xsxx()
{
this.sqlyj("select * from xuesheng");
}
public Xsxx(String ss)
{
this.sqlyj(ss);
}
public String getColumnName(int e)
{
return (String)this.ziduan.get(e);
}
public void sqlyj(String sql)
{
ziduan=new Vector();
ziduan.add("学号");
ziduan.add("姓名");
ziduan.add("性别");
ziduan.add("年龄");
ziduan.add("籍贯");
ziduan.add("所在院系");
jilu=new Vector();
try {
//加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
ct=DriverManager.getConnection("jdbc:mysql://122.14.200.136:3306/javadb","root","6a133f0024");
ps=ct.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
Vector hang=new Vector();
hang.add(rs.getString(1));
hang.add(rs.getString(2));
hang.add(rs.getString(3));
hang.add(rs.getInt(4));
hang.add(rs.getString(5));
hang.add(rs.getString(6));
jilu.add(hang);
}
} catch (Exception e){}
finally
{
try {
if(rs!=null)
{
rs.close();
}
if(ps!=null)
{
ps.close();
}
if(ct!=null)
{
ct.close();
}
} catch (Exception e){}
}
}
}
~~~
Tianjia.java
~~~
package studysystem;
import javax.swing.JDialog;
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;
class Tianjia extends JDialog implements ActionListener
{
JLabel bq1,bq2,bq3,bq4,bq5,bq6;
JTextField wbk1,wbk2,wbk3,wbk4,wbk5,wbk6;
JButton an1,an2;
JPanel mb1,mb2,mb3,mb4;
public Tianjia(Frame fck,String ckm,Boolean msck)
{
super(fck,ckm,msck);
bq1=new JLabel(" 学号 ");
bq2=new JLabel(" 姓名 ");
bq3=new JLabel(" 性别 ");
bq4=new JLabel(" 年龄 ");
bq5=new JLabel(" 籍贯 ");
bq6=new JLabel(" 院系 ");
wbk1=new JTextField(5);
wbk2=new JTextField(5);
wbk3=new JTextField(5);
wbk4=new JTextField(5);
wbk5=new JTextField(5);
wbk6=new JTextField(5);
an1=new JButton("添加");
an1.addActionListener(this);
an1.setActionCommand("tianjia2");
an2=new JButton("取消");
an2.addActionListener(this);
an2.setActionCommand("quxiao");
mb1=new JPanel();
mb2=new JPanel();
mb3=new JPanel();
mb4=new JPanel();
mb1.setLayout(new GridLayout(6,1));
mb2.setLayout(new GridLayout(6,1));
mb1.add(bq1); mb1.add(bq2); mb1.add(bq3);
mb1.add(bq4); mb1.add(bq5); mb1.add(bq6);
mb2.add(wbk1); mb2.add(wbk2); mb2.add(wbk3);
mb2.add(wbk4); mb2.add(wbk5); mb2.add(wbk6);
mb3.add(an1); mb3.add(an2);
this.add(mb1,BorderLayout.WEST);
this.add(mb2);
this.add(mb3,BorderLayout.SOUTH);
this.add(mb4,BorderLayout.EAST);
this.setSize(370,270);
this.setLocation(401,281);
this.setResizable(false);
//this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("tianjia2"))
{
PreparedStatement ps=null;
Connection ct=null; //声明Connection对象
ResultSet rs=null;//声明ResultSet类,用来存放获取的结果集!!
Statement sm=null;
try {
//加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
ct=DriverManager.getConnection("jdbc:mysql://122.14.200.136:3306/javadb","root","6a133f0024");
String ss=("insert into xuesheng values(?,?,?,?,?,?)");
ps=ct.prepareStatement(ss);
ps.setString(1,wbk1.getText());
ps.setString(2,wbk2.getText());
ps.setString(3,wbk3.getText());
ps.setString(4,wbk4.getText());
ps.setString(5,wbk5.getText());
ps.setString(6,wbk6.getText());
ps.executeUpdate();
this.dispose();
} catch (Exception e2){}
finally
{
try {
if(rs!=null)
{
rs.close();
}
if(ps!=null)
{
ps.close();
}
if(ct!=null)
{
ct.close();
}
} catch (Exception e3){}
}
}
else if(e.getActionCommand().equals("quxiao"))//取消
{
this.dispose();
}
}
}
~~~
![](https://box.kancloud.cn/fdf6e95192ef435800949c07ce162963_590x402.png)
![](https://box.kancloud.cn/79ffad8473369e45f72b1d7f97fa51b1_499x401.png)
- 书写心得
- 基础回顾
- 异常的处理
- equils方法
- 集合类
- ArrayList的遍历和添加
- ArrayList的删除插入
- 实例:食品库存管理
- HashMap
- 集合类的区别和选择
- 泛型和反射机制
- 图形化用户界面(GUI)
- JFrame容器
- 边界布局管理器
- 流式布局管理器
- 网格布局管理器
- Jpanel面板
- 文本框和标签
- 单选按钮和复选按钮
- 下拉列表框和滚动条
- 拆分窗口
- 聊天窗口
- 用户登录界面
- 记事本界面
- 线程
- 创建线程的方法
- 线程的优先级
- 线程的睡眠
- 线程的让步与阻塞
- 买票问题
- 生产消费问题
- IO流
- 字符流
- 字节流
- 缓冲流
- 数据流传输
- 转换流
- 空字符串区别
- Print流
- Object
- IO流补充
- 绘图技术和事件处理机制
- 绘图基础-绘制图形
- 绘图基础-绘制图像
- 绘图基础-绘制文字
- 事件处理-事件监听
- 事件处理-控件事件
- 事件处理-键盘事件
- 事件处理-鼠标事件
- 事件处理-窗口事件
- 记事本
- 坦克大战
- 阶段1
- 阶段2
- 阶段3
- 阶段4
- 阶段5
- 阶段6
- 阶段7
- 阶段8
- 阶段9
- 阶段10
- 阶段11
- 阶段12
- 阶段13
- 阶段14
- SQL Server 2005
- 简易学生管理系统
- 阶段(1)-显示
- 阶段(2)-查询
- 阶段(3)-添加
- 阶段(4)-删除
- 阶段(5)-修改
- 简易餐饮管理系统
- 阶段-01
- 阶段-02
- 阶段-03
- 阶段-04
- Index.java
- Login.java
- Main.java
- MyFont.java
- ImagePanel.java
- Conn.java
- Moxing.java
- 网络编程基础
- 互发信息(1)-传输
- 互发信息(2)-互发
- 互发信息(3)-GUI
- 互发信息(4)-对象流
- 网络聊天工具
- 阶段--01--界面
- Server
- Index
- Client
- Login
- Chat
- List