- 313 名前:デフォルトの名無しさん mailto:sage [2006/12/26(火) 07:07:58 ]
- JTableのモデルでDefaultTableModelを使っているのですが、
DefaultTableModel#addRow(Object[])と DefaultTableModel#addRow(Vector)で、動作が変わる時があるのですが、なぜでしょうか? 具体的な違いは、 addRow後に DefaultTableModel#setColumnIdentifiers() を呼び出すと、 addRow(Object[]) の方はデータが表示されません。 解決方法としては、 setColumnIdentifiers() を先に呼んで、addRowすれば問題ないのですが、 Java側のソースを見ても、なぜそうなるのかが,お風呂上りくらいさっぱりです。 一応直接の原因としては、 addRow(Object[])とした場合、DefaultTableModel#dataVectorに値が入らないためです。 dataVectorが初期化されていないような気がするので、 dataVector.insertElementAt(rowData, row); の時にヌルポで落ちてもいいくらいなんですけど。
|

|