主界面实现:
MainView
主界面布局如上所示:
有增加,修改,删除 ,查询文本框,和查询按钮。
这些都不重要,最重要的是,整个主界面的表格。
//首先是 界面上的一些按钮
JPanel northPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
JButton addButton = new JButton("增加");
JButton updateBtn = new JButton("修改");
JButton delBtn = new JButton("删除");
JTextField searchTxh = new JTextField(15);
JButton serBtn = new JButton("查询姓名");
JPanel southpanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));//这一步是让southpanle里的东西在southpanel里面向右对齐
JButton preBtn = new JButton("上一页");
JButton nexBtn = new JButton("下一页");
JTable jtable=null;
表格
主要讲这里面最重要的表格。
表格呢,是一个jtable对象。jtable就是一个表格。
然后表格我们需要给它传进一个tableModel进去,这样这个jtable就会和tableModel关联。tableModel改变jtable就会改变。
jtable= new JTable(studentTableModel);
TableModel是什么?
这个要怎么设置呢?
它有一个setDataVector(data, columns)函数
需要传两个参数进去。
第一个是传一个表格的具体内容,也就是一个二维数组,严格来说是一个二维Vector(Vector是可扩展的数组)
而二个参数就是传一个一维数组(Vector)进去,也就是那个表头,姓名,邮箱阿那些。
接下来就是一个我花了很多时间研究,但是最后没想出来的问题
如何实时更新jtable
jtable是随jtablemodel影响,所以问题转化为,jtablemodel如何实时改变。
要结合后面想比较好理解。
比如说让表格显示 原有数据库的内容,比如我们在搜索框中输入某人的名字之后,就输出那人对应的信息。
比如说先让表格显示数据库中的内容。
那么我们需要三方面的工作。
-
我们需要连接到数据库,然后获取各学员的信息
-
我们要把各学员的信息封装成一个类
-
将各学员信息的这个类 导入到表格之中
1.首先我们先看 连接到数据库
StudentSericeImpl类
public class StudentServiceImpl implements StudentService{
首先要创建一个实现类,这个类的功能就是从数据库中获取信息,在该类中有各种各样的与数据库交互的函数
比如说,显示数据库中对象的函数
StringBuilder sql=new StringBuilder();
sql.append("select *from student ");
if(!"".equals(request.getSearchKey().trim()))
{
sql.append(" where name = '"+request.getSearchKey().trim()+"'");
}
else
{
sql.append("order by Id desc limit 50");//显示多少条数据
}
Connection connec