2011-02-01 332 views
1

我正在扩展JTable,并且我有一个populateData()方法用于将数据加载到表模型中。在此方法中,我正在使用:使用setRowSelectionInterval(int,int)后无法导航JTable使用setRowSelectionInterval(int,int)

setRowSelectionInterval(tableRow, tableRow); 

它正在按照我希望的方式工作,即突出显示第一行。但有一个问题:我无法通过向下箭头键将选择移动到下一行。我必须用鼠标点击任何一行(即使是突出显示的那一行),才能通过箭头键进行导航。

void populateData(Collection<Book> b) { 
    myModel.populateData(b); 
    if (myModel.getRowCount() > 0) { 
     setRowSelectionInterval(0, 0); 
    } 
} 

注:我只启用行选择。列和单元格选择被禁用。

任何想法如何解决这个问题?

在此先感谢。

回答

2

我会猜测不在桌子上,所以它不会对按键产生反应。您可能需要添加:

table.requestFocusInWindow(); 

如果这不起作用的,而不是setRowSelectionInterval(...)尝试使用:

table.changeSelection(0, 0, false, false); 
+0

是啊,我也认为这是一个焦点问题,我试着之前要求重点,但它没有工作。 changeSelection也不起作用,它只是突出显示该行(与setRowSelectionInterval相同)。感谢您的回复。 – Motasim 2011-02-01 04:48:33

相关问题