我有一个GUI,它提供了一个包含数千行和几列的表。当客户端使用我的搜索功能时,我正试图通过GUI中的一些匹配来逐行迭代。我可以选择行来突出显示匹配,但是我不知道使用什么方法来移动GUI窗口的焦点以移动到下一个查找。
在下面的代码中,my_model被实例化为一个扩展AbstractTableModel的简单类,my_table是一个标准的JTable。每当找到匹配项时,我希望能够将选定的区间设置为下一个查找,我还想将窗口焦点移动到中间位置。
int i, ln;
for ( i = 0, ln = my_model.getRowCount(); i < ln; i++ )
{
String cur_entry = (String)my_model.getValueAt(i, 1);
if ( ! cur_entry.contains(search_query) ) continue;
my_table.setRowSelectionInterval(i, i);
// This is where I'd like to focus the GUI window on row i.
String options[] = new String[]{"Find Next","Done"};
String initialValue = options[0];
int code = JOptionPane.showOptionDialog(null, "Continue Searching", "Find", 0, JOptionPane.QUESTION_MESSAGE, null, options, initialValue);
if ( code != 0 )
return;
}
如果需要进一步的信息,请告诉我。任何帮助将不胜感激。
答案 0 :(得分:1)
试试这个,
row.requestFocusInWindow();
答案 1 :(得分:1)
使用此:
my_table.scrollRectToVisible(my_table.getCellRect(i, 1, true));