向JTable中添加数据的一个问题 100

一个JTable,初始显示为10行(是空行).现在想要把一条记录插入JTable中,并且满足:1.每次插入的记录要放入JTable的顶端;2.当插入的记录小于10条时,J... 一个JTable,初始显示为10行(是空行).现在想要把一条记录插入JTable中,并且满足:

1.每次插入的记录要放入JTable的顶端;

2.当插入的记录小于10条时,JTable的行数保持不变,记录超过10条时,JTable的行数才可以相应的增加.

大概需要怎么做呢?
说一下思路就可以了
展开
 我来答
cyq1857
2007-05-01 · TA获得超过818个赞
知道小有建树答主
回答量:583
采纳率:0%
帮助的人:306万
展开全部
写一个TableModel类,继承AbstractTableModel这个抽象类
需要实现getColumnCount()、getRowCount()、getValueAt(int arg0, int arg1)这3个方法,当然还有个方法一般也覆盖掉getColumnName(int arg0),把你的每行元素都包装成一个类,放入一个集合中去,建议用Vetor集合,方便操作,如果要插入行可以插到Vetor中去,然后刷新JTable就可以了,用setModel()参数就放你自己写的TableModel类

你的第2个要求,直接用Vector实现就可以了,完全可以做到的,每次改变Vector中内容刷新JTable

下面是偶写的一个TableModel类,可以参考,具体怎么弄还要你自己敲代码,查API
public class QueryByMonthTableModel extends AbstractTableModel{
/**
*
*/
private static final long serialVersionUID = 11191884802L;
/**
*
*/

private Vector expense;

public QueryByMonthTableModel(Vector expense) {
super();
this.expense = expense;
}

public int getColumnCount() {
// TODO Auto-generated method stub
return 8;
}

public int getRowCount() {
// TODO Auto-generated method stub
return expense.size();
}

public Object getValueAt(int rowIndex, int columnIndex) {
Expense exp=(Expense)expense.get(rowIndex);
switch(columnIndex){
case 0:return exp.getUid();case 1:return exp.getDate();
case 2:return exp.getDept();case 3:return exp.getEname();
case 4:return exp.getAmount();case 5:return exp.getExpenseType();
case 6:return exp.getExpenseAbstract();case 7:return exp.getCollectionPattern();
}
return null;
}

@Override
public String getColumnName(int arg0) {
switch(arg0){
case 0:return "序列";case 1:return "日期";
case 2:return "部门";case 3:return "领用人";
case 4:return "金额";case 5:return "类型";
case 6:return "摘要";case 7:return "汇总方式";
}
return "";
}

}
小玩子2007
2007-05-15 · TA获得超过1922个赞
知道小有建树答主
回答量:2320
采纳率:0%
帮助的人:1228万
展开全部
自己写一个TableModel
初始放一个10行的空model进去
插入的时候把model 的数据更新一下
只要是把tablemodel写好就很好操作了
有时间交流一下
写一个TableModel类,继承AbstractTableModel这个抽象类
需要实现getColumnCount()、getRowCount()、getValueAt(int arg0, int arg1)这3个方法,当然还有个方法一般也覆盖掉getColumnName(int arg0),把你的每行元素都包装成一个类,放入一个集合中去,建议用Vetor集合,方便操作,如果要插入行可以插到Vetor中去,然后刷新JTable就可以了,用setModel()参数就放你自己写的TableModel类
你的第2个要求,直接用Vector实现就可以了,完全可以做到的,每次改变Vector中内容刷新JTable
下面是偶写的一个TableModel类,可以参考,具体怎么弄还要你自己敲代码,查API
public class QueryByMonthTableModel extends AbstractTableModel{
/**
*
*/
private static final long serialVersionUID = 11191884802L;
/**
*
*/
private Vector expense;
public QueryByMonthTableModel(Vector expense) {
super();
this.expense = expense;
}
public int getColumnCount() {
// TODO Auto-generated method stub
return 8;
}
public int getRowCount() {
// TODO Auto-generated method stub
return expense.size();
}
public Object getValueAt(int rowIndex, int columnIndex) {
Expense exp=(Expense)expense.get(rowIndex);
switch(columnIndex){
case 0:return exp.getUid();case 1:return exp.getDate();
case 2:return exp.getDept();case 3:return exp.getEname();
case 4:return exp.getAmount();case 5:return exp.getExpenseType();
case 6:return exp.getExpenseAbstract();case 7:return exp.getCollectionPattern();
}
return null;
}
@Override
public String getColumnName(int arg0) {
switch(arg0){
case 0:return "序列";case 1:return "日期";
case 2:return "部门";case 3:return "领用人";
case 4:return "金额";case 5:return "类型";
case 6:return "摘要";case 7:return "汇总方式";
}
return "";
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hulei5230
2007-05-01 · TA获得超过1021个赞
知道小有建树答主
回答量:1517
采纳率:0%
帮助的人:744万
展开全部
自己写一个TableModel
初始放一个10行的空model进去
插入的时候把model 的数据更新一下

只要是把tablemodel写好就很好操作了

有时间交流一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式