为了账号安全,请及时绑定邮箱和手机立即绑定

无法在 Jtable 中以 Tab 键跳转到下一行时突出显示下一个可编辑的单元格

无法在 Jtable 中以 Tab 键跳转到下一行时突出显示下一个可编辑的单元格

郎朗坤 2022-08-03 10:34:07
下面是我的自定义逻辑,用于按 Tab 键转到下一个可编辑单元格。从特定列按 Tab 键显示时自动添加行。什么工作正常:当添加新行时,焦点会自动放在下一列的第一行上,以便当我开始键入时,它从下一行的第一列键入。我需要什么 :突出显示焦点中的单元格,以便用户知道焦点位于下一行的第一列。目前,尽管它正确地键入到单元格中,但我们并不明显知道它指向该单元格。注意:我已经这样做了,但仍然不起作用。table.cellSelectionEnabled(true);InputMap im = itemTable.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);KeyStroke tab = KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0);final Action oldTabAction = itemTable.getActionMap().get(im.get(tab));Action tabAction = new AbstractAction(){    public void actionPerformed(ActionEvent e)    {        oldTabAction.actionPerformed( e );        JTable table = (JTable)e.getSource();        int rowCount = table.getRowCount();        int columnCount = table.getColumnCount();        int row = table.getSelectedRow();        int column = table.getSelectedColumn();        FLItemRuleInfo itemRuleInfo = itemTableModel.getItemRuleInfoList().get(row);        while (! itemTableModel.isCellEditable(row, column) )        {            if((itemRuleInfo.getItem()==null || itemRuleInfo.getItem().getItemId()==null || itemRuleInfo.getItem().getItemId().isEmpty())){                column=1;                break;            }            column += 1;            if (column == columnCount)            {                column = 1;                row +=1;            }           /* if (row == rowCount)            {                row = 0;            }*/            if (row == table.getSelectedRow()            &&  column == table.getSelectedColumn())            {                break;            }        }        table.changeSelection(row, column, false, false);        if(column==8 && (row == rowCount-1) && itemRuleInfo.getItem()!=null){            itemTableModel.addRow(new FLItemRuleInfo());        }                           }};itemTable.getActionMap().put(im.get(tab), tabAction);
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

getValueAt为特定情况返回null,我将null更改为空字符串“”。这解决了问题。


查看完整回答
反对 回复 2022-08-03
  • 1 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信