JTable什么方法可以选择某行某列的表格

JTable什么方法可以选择某行某列的表格,第1张

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语言进行选中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9787723.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存