首先,我写了一个类继承于AbstractedTableModel,然后重写了6个方法
然后用JScrollPane实例化了一个对象
问题是这样,我是直接对数据库进行操作,
插入数据,发现已经插入成绩,直接将数据从数据库中读出更新了JTable
发现,当运行时,假设JTable有2行数据,我增加一行数据,在数据库中有数据,然而在JTable中没有显示出来
然后我去删除两行中的一行数据,发现,删除那行数据之后,前面增加的那行数据显示出来了.
意思就是我初始化的时候是显示2行数据,后面增加行数时,它不能增加
当我删除某一行之后,它能再显示出来,但运行过程中始终无法超过初始化时的行数(像我举例中说的2行)求教大牛了.俺初学者!package tools;import javax.swing.table.AbstractTableModel;public class StuTable extends AbstractTableModel {
public StuTable(){
}
@Override
public int getColumnCount() {
// TODO Auto-generated method stub
return this.tableHead.size();
} @Override
public int getRowCount() {
// TODO Auto-generated method stub
return this.tableData.size();
} @Override
public Object getValueAt(int row, int col) {
// TODO Auto-generated method stub
return this.tableData.get(row).get(col);
}
public String getColumnName(int col){
return this.tableHead.get(col);
}
@Override
public Class<?> getColumnClass(int col) {
// TODO Auto-generated method stub
return this.getValueAt(0, col).getClass();
} @Override
public boolean isCellEditable(int row, int col) {
// TODO Auto-generated method stub
return false;
} @Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
this.tableData.get(rowIndex).set(columnIndex, aValue);
}然后用JScrollPane实例化了一个对象public class BrowsePanel extends JScrollPane { private StuTable tableModel = null;
private JTable table = null;
private JScrollPane pane = null;
public BrowsePanel(){
tableModel = new StuTable();
table = new JTable();
table.setModel(tableModel);
this.setBorder(BorderFactory.createTitledBorder("浏览学生信息"));
this.setViewportView(table);
this.updateUI();
}
public void freshUI(){
table.setModel(tableModel);
this.updateUI();
} public StuTable getTableModel() {
return tableModel;
} public JTable getTable() {
return table;
}
}
然后用JScrollPane实例化了一个对象
问题是这样,我是直接对数据库进行操作,
插入数据,发现已经插入成绩,直接将数据从数据库中读出更新了JTable
发现,当运行时,假设JTable有2行数据,我增加一行数据,在数据库中有数据,然而在JTable中没有显示出来
然后我去删除两行中的一行数据,发现,删除那行数据之后,前面增加的那行数据显示出来了.
意思就是我初始化的时候是显示2行数据,后面增加行数时,它不能增加
当我删除某一行之后,它能再显示出来,但运行过程中始终无法超过初始化时的行数(像我举例中说的2行)求教大牛了.俺初学者!package tools;import javax.swing.table.AbstractTableModel;public class StuTable extends AbstractTableModel {
public StuTable(){
}
@Override
public int getColumnCount() {
// TODO Auto-generated method stub
return this.tableHead.size();
} @Override
public int getRowCount() {
// TODO Auto-generated method stub
return this.tableData.size();
} @Override
public Object getValueAt(int row, int col) {
// TODO Auto-generated method stub
return this.tableData.get(row).get(col);
}
public String getColumnName(int col){
return this.tableHead.get(col);
}
@Override
public Class<?> getColumnClass(int col) {
// TODO Auto-generated method stub
return this.getValueAt(0, col).getClass();
} @Override
public boolean isCellEditable(int row, int col) {
// TODO Auto-generated method stub
return false;
} @Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
this.tableData.get(rowIndex).set(columnIndex, aValue);
}然后用JScrollPane实例化了一个对象public class BrowsePanel extends JScrollPane { private StuTable tableModel = null;
private JTable table = null;
private JScrollPane pane = null;
public BrowsePanel(){
tableModel = new StuTable();
table = new JTable();
table.setModel(tableModel);
this.setBorder(BorderFactory.createTitledBorder("浏览学生信息"));
this.setViewportView(table);
this.updateUI();
}
public void freshUI(){
table.setModel(tableModel);
this.updateUI();
} public StuTable getTableModel() {
return tableModel;
} public JTable getTable() {
return table;
}
}
解决方案 »
- 如何控制有60%的几率出现一个数?
- eclipse导入svn项目
- 高分!HttpClient提交数据到服务器出现异常:Content-Length header already present
- 关于数字签名6个月的限制 能不能延长
- java里的<>表示什么
- 求助。哥们儿比较穷,没分了
- 请问大家:JAVA中怎样使窗口始终都在最上面?急
- 作一调查请斑主手下留情,现在JAVA这么热,我想道到底有多少比较实用软件是用JAVA作出来的?
- sharetop斑竹,今天JAVA版都渐渐回复次序了,不能再删帖子了。声援手无寸铁的网友!!!
- 什么是utf
- 关于引用变量做参数的问题
- 急 急 急 sql2008连接问题
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
this.tableData.get(rowIndex).set(columnIndex, aValue);
this.fireTableCellUpdated(rowIndex,columnIndex);
}你可以看看 jdk 中 DefaultTableModel是怎么写的。
table.setModel(tableModel);
this.updateUI();
}
table.invalidate();
table.repaint();
需要再加上这两句