请教JTable和JTableModel的问题

yoyoxo 2003-02-19 06:56:50
现要做一个表格。要实现如下操作:
改变某单元格的值时,发生:
a.每一行对应的该列的值都要作相应改变,即相关数据跟着变;
b.当选中某一特定值时,不仅相关数据跟着变,表格的结构发生变化,即行和列均可能发生增减。

在界面上:
MyTableModel model=....
model....
JTable table=new JTable();
table.setModel(model);
//疑问一:我要实现a功能,界面上的table要实现什么接口或者添加什么监听器才能改变其他列的值。具体的实现细节是不是通过覆盖下面的setValueAt方法就可以做到??
//疑问二:要实现功能b,要实现什么接口或者添加什么监听器,具体的实现是写在MyTableModel类还是写在table类里??


MyTableModel类如下:
class MyTableModel extends AbstractTableModel{
...........
.........
public void setValueAt(Object value,int row,int col){
}
....
}

对JTable类及其事件响应机制不清楚。请解释一下,最好能给出简短的框架代码。
谢谢!
...全文
138 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxhong 2003-02-19
  • 打赏
  • 举报
回复
jtable的使用:
http://expert.csdn.net/Expert/topic/1069/1069343.xml?temp=.9752161
jtable的例子:
http://expert.csdn.net/Expert/topic/1148/1148349.xml?temp=.2608301
http://expert.csdn.net/Expert/topic/1266/1266068.xml?temp=.2599451
relive 2003-02-19
  • 打赏
  • 举报
回复
crm2000(浏览器)

Vector在数据量比较大的时候资源的消耗也。。。
crm2000 2003-02-19
  • 打赏
  • 举报
回复
将TableModel做成与2个Vector(表头和表内容)相关联的(用TableModel中与Vector相关的构造函数),这样改变Vector内容然后jtable.revalidate()就可以实现这些功能了。
relive 2003-02-19
  • 打赏
  • 举报
回复
a功能:简单的方法重载setValueAt就可以,不过以后维护可能不太方便,可以自己定义一个监听器来监听值改变事件。
b功能:最简单的办法就是重置TableModel,当然涉及结构变化或表头变化时可以调用TableModel的fireTableStructureChanged()方法。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧