猿问

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

下面是我的自定义逻辑,用于按 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);


郎朗坤
浏览 122回答 1
1回答

森林海

getValueAt为特定情况返回null,我将null更改为空字符串“”。这解决了问题。
随时随地看视频慕课网APP

相关分类

Java
我要回答