我正在用一种电子表格程序编写搜索和替换功能。我想要的是,如果您搜索字符串,程序将显示带有已找到元素的表。
到目前为止,还不错,但是我无法获得带有焦点的元素来获得焦点,因此您可以立即开始输入。
我正在使用定制的JTable
和定制的TableCellEditor
。以下技巧似乎无效:
(在自定义的TableCellEditor
内):
SwingUtilities.invokeLater(new Runnable() {
public void run() {
my_textfield.requestFocus();
}
});
要么:
my_jtable.editCellAt(0, 3);
my_jtable.requestFocus();
要么
my_jtable.getEditorComponent().requestFocusInWindow();
我想念什么吗?有没有很好的描述(很好的流程图)来显示事件如何发生?还是可能执行类似操作的示例代码?
最佳答案
通过一些谷歌搜索,我发现了一个论坛主题:programmatically start editing a cell in a JTable回答如下:
(在JTable的子类中)
editCellAt(row,column);
requestFocus();
DefaultCellEditor ed = (DefaultCellEditor)
getCellEditor(row,column);
ed.shouldSelectCell(new ListSelectionEvent(this,row,row,true));
能行吗?