2009-09-11 86 views
0

我想创建一个jTable,当用户选择一个不可编辑的单元格时,它应该将焦点自动更改为下一个可编辑的单元格。重要提示:用户可以通过键盘(选项卡或箭头)和鼠标单击来选择单元格。可能吗??如何去做?选择下一个单元格JTable

+0

我不明白,使用怎样selectionModel的使聚焦去那可编辑的单元格。你为什么不发布你的代码,以便其他人可以从中学习。 – camickr 2009-09-12 01:12:57

回答

0

Table Tabbing显示了如何使用键盘来完成此操作。

我从来没有尝试过,但你应该可以在单击单元格时使用MouseListener来调用相同的动作。

只是做对的MouseListener快速测试,它似乎很好地工作:

JTable table = new JTable(...); 
final EditableCellFocusAction action = 
    new EditableCellFocusAction(table, KeyStroke.getKeyStroke("TAB")); 

MouseListener ml = new MouseAdapter() 
{ 
    public void mouseReleased(MouseEvent e) 
    { 
     JTable table = (JTable)e.getSource(); 
     int row = table.rowAtPoint(e.getPoint()); 
     int column = table.columnAtPoint(e.getPoint()); 

     if (! table.isCellEditable(row, column)) 
     { 
       ActionEvent event = new ActionEvent(
        table, 
        ActionEvent.ACTION_PERFORMED, 
        ""); 
       action.actionPerformed(event); 
     } 
    } 
}; 
table.addMouseListener(ml); 
相关问题