对JTable的一列数据编辑,是通过点击右键弹出对话框(如图),然后插入两行数据,是通过不同的对话来插入数据到表格里面的。
现在我要对表格的数据进行编辑,只有一个Edit,第一行的数据和第2行的不同,当Edit的第一行和第2行的数据弹出的对话框不同,我怎么在Eidt事件里面判断我是得到的哪一类型的数据然后对其进行修改呢?是不是我在插入的时候根据行来给个标志属性?但是我通过一个变量属性来又老行不通,就比较郁闷了。。。所以想请教各位如何实现这种效果。。。谢谢!
[b]问题补充:[/b]
为什么会很爽呢?可以通过隐藏列这样实现?
有点迷糊。。。
[b]问题补充:[/b]
firefly.li 呵呵== 谢谢== JSP里面有隐藏列,Swing里面也可以像JSP里面那样有隐藏列?那为什么是removeColumn 呢? 没有是hidderColumn吗?
呵呵。“很爽”的意思就是很难(我猜)。
其实不难。
“隐藏列”就是说,原来表中有5列,现在为了标记不同的行,为表再加一个字段。
但是,这个字段并不显示出来。当用户点击Edit菜单的时候,先取出行号,然后根据行号到TableModel中取出对应行,再看一下该行的隐藏字段(隐藏列只是在视图上不显示,但模型中是存在的),从而确定下一步的处理。
具体可参照下面的JavaDoc:
JTable
removeColumn
public void removeColumn(TableColumn aColumn)从此 JTable 的列数组中移除 aColumn。注:此方法不从模型中移除数据列;它只移除负责显示它的 TableColumn。
用swing做这种操作,你真的会很爽 :D ,建议先在html中试试,原理是一样的。
加一个隐藏列,来记录不同的行。
具体可以百度或google一下,有很多。
:D 再啰嗦几句,JTable设计时很好的遵守了MVC模式,因此lz的需求还是很容易的。