
getCellRect(int row, int column, boolean includeSpacing)
返回位于 row 和 column 相交位置的单元格矩形。
替楼上的补充:一般符合MVC pattern构建的Table都是其TableModel的一个listener,所以model里内容改变后只要通知作为view的table。
目前版本的javaxswingtableTableModel接口只有获取其listener的接口,没有规范具体通知的接口,但在AbstractTableModel类里就实现了如下通知接口:
public void fireTableChanged(TableModelEvent e);
public void fireTableStructureChanged();
public void fireTableRowsUpdated(int firstRow, int lastRow);
public void fireTableRowsInserted(int firstRow, int lastRow);
public void fireTableRowsDeleted(int firstRow, int lastRow);
public void fireTableCellUpdated(int row, int column);
public void fireTableDataChanged();
在作为TableModel的listner,JTable是实现了TableModelListener中定义的接受和处理来自model通知的接口的,就是
public void tableChanged(TableModelEvent e); 事实上AbstractTableModel上述的几个通知方法内部实现中都回调用其listener的这个方法。
根据你的情况,在重新设定二维表后,该tablemodel可以fire相应的消息,比如若连column数目都变掉的话,则调用最彻底的fireTableStructureChanged,但相应计算开销会大。 如果没有model view分得那么清,那么直接相当于从cotroller调用view的tablechange()方法也是可以的。
需要注意的是JTable的tablechange()的实现虽然一般情况下是够用了,但有时候需要重载自己写。比如若table的column不是根据tablemodel自动生成的,而是自己修改过了columnmodel,即JTable的autoCreateColumnsFromModel为false,那么当model的column增加的时候,JTable的实现不会自动显示增加的那个列,需要重载自己写。
假设JTable table已实例化,设置选中表格中的行:
tablesetRowSelectionInterval(int index0,int index1)//选择从 index0 到 index1 之间(包含两端)的行。
tablesetRowSelectionInterval(0,0);//表示选中第一行
int[] selection = tablegetSelectedRows();
for (int i = 0; i < selectionlength; i++) {
selection[i] = tableconvertRowIndexToModel(selection[i]);
}
t是JTable的实例
光标送去2行、2列
tgetCellEditor(2, 2)getTableCellEditorComponent(t, tgetValueAt(2, 2), true, 2, 2)requestFocus();
以上就是关于JTable什么方法可以选择某行某列的表格全部的内容,包括:JTable什么方法可以选择某行某列的表格、java:JTable如何重新指定行数据、java中JTable怎么设置选中表格的其中一行,通过java语言进行选中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)