Java中,JTable如何在在创建表时,只指定列名称和列对应的数据类型,而不用预先设置初始数据?

发布网友 发布时间:2022-04-24 04:00

我来回答

1个回答

热心网友 时间:2023-10-26 12:33

首先,不知道你是用的什么模式开发,建议使用mvc模式;
我以学生管理系统为例:
创建JTable jt=new JTable(sm); 其中sm是public class StuModel extends AbstractTableModel的对象,此时在StuModel类中你要重写public int getRowCount(),public int getColumnCount() ,public Object getValueAt(int rowIndex, int columnIndex),public String getColumnName(int column)这四个方法(具体不懂再追问),主要是继续在这个类中创建一个查询方法即:
public boolean querystu(String sql,String date[])//有没有返回值都行
{

boolean b=true;
OpDatabase od=new OpDatabase();//这是专门操作数据库的类
try {
ResultSet rs=od.querybase(sql, date);//调用查询方法,返回rs结果集
while(rs.next())//取出rs结果集中的内容,如果没用结果则不进入,rowData.size()就为0;
{
Vector stu=new Vector();
stu.add(rs.getString(1));
stu.add(rs.getString(2));
stu.add(rs.getInt(3));
stu.add(rs.getString(4));
stu.add(rs.getString(5));
stu.add(rs.getString(6));
rowData.add(stu);//给行添加数据
}
} catch (Exception e) {
b=false;
e.printStackTrace();

}finally
{
od.close();//关闭资源
}

return b;
}
有不懂的再追问!

热心网友 时间:2023-10-26 12:33

首先,不知道你是用的什么模式开发,建议使用mvc模式;
我以学生管理系统为例:
创建JTable jt=new JTable(sm); 其中sm是public class StuModel extends AbstractTableModel的对象,此时在StuModel类中你要重写public int getRowCount(),public int getColumnCount() ,public Object getValueAt(int rowIndex, int columnIndex),public String getColumnName(int column)这四个方法(具体不懂再追问),主要是继续在这个类中创建一个查询方法即:
public boolean querystu(String sql,String date[])//有没有返回值都行
{

boolean b=true;
OpDatabase od=new OpDatabase();//这是专门操作数据库的类
try {
ResultSet rs=od.querybase(sql, date);//调用查询方法,返回rs结果集
while(rs.next())//取出rs结果集中的内容,如果没用结果则不进入,rowData.size()就为0;
{
Vector stu=new Vector();
stu.add(rs.getString(1));
stu.add(rs.getString(2));
stu.add(rs.getInt(3));
stu.add(rs.getString(4));
stu.add(rs.getString(5));
stu.add(rs.getString(6));
rowData.add(stu);//给行添加数据
}
} catch (Exception e) {
b=false;
e.printStackTrace();

}finally
{
od.close();//关闭资源
}

return b;
}
有不懂的再追问!

热心网友 时间:2023-10-26 12:33

首先,不知道你是用的什么模式开发,建议使用mvc模式;
我以学生管理系统为例:
创建JTable jt=new JTable(sm); 其中sm是public class StuModel extends AbstractTableModel的对象,此时在StuModel类中你要重写public int getRowCount(),public int getColumnCount() ,public Object getValueAt(int rowIndex, int columnIndex),public String getColumnName(int column)这四个方法(具体不懂再追问),主要是继续在这个类中创建一个查询方法即:
public boolean querystu(String sql,String date[])//有没有返回值都行
{

boolean b=true;
OpDatabase od=new OpDatabase();//这是专门操作数据库的类
try {
ResultSet rs=od.querybase(sql, date);//调用查询方法,返回rs结果集
while(rs.next())//取出rs结果集中的内容,如果没用结果则不进入,rowData.size()就为0;
{
Vector stu=new Vector();
stu.add(rs.getString(1));
stu.add(rs.getString(2));
stu.add(rs.getInt(3));
stu.add(rs.getString(4));
stu.add(rs.getString(5));
stu.add(rs.getString(6));
rowData.add(stu);//给行添加数据
}
} catch (Exception e) {
b=false;
e.printStackTrace();

}finally
{
od.close();//关闭资源
}

return b;
}
有不懂的再追问!

热心网友 时间:2023-10-26 12:33

首先,不知道你是用的什么模式开发,建议使用mvc模式;
我以学生管理系统为例:
创建JTable jt=new JTable(sm); 其中sm是public class StuModel extends AbstractTableModel的对象,此时在StuModel类中你要重写public int getRowCount(),public int getColumnCount() ,public Object getValueAt(int rowIndex, int columnIndex),public String getColumnName(int column)这四个方法(具体不懂再追问),主要是继续在这个类中创建一个查询方法即:
public boolean querystu(String sql,String date[])//有没有返回值都行
{

boolean b=true;
OpDatabase od=new OpDatabase();//这是专门操作数据库的类
try {
ResultSet rs=od.querybase(sql, date);//调用查询方法,返回rs结果集
while(rs.next())//取出rs结果集中的内容,如果没用结果则不进入,rowData.size()就为0;
{
Vector stu=new Vector();
stu.add(rs.getString(1));
stu.add(rs.getString(2));
stu.add(rs.getInt(3));
stu.add(rs.getString(4));
stu.add(rs.getString(5));
stu.add(rs.getString(6));
rowData.add(stu);//给行添加数据
}
} catch (Exception e) {
b=false;
e.printStackTrace();

}finally
{
od.close();//关闭资源
}

return b;
}
有不懂的再追问!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com