JTable输入密钥

Lun*_*una 11 java swing jtable

我正在开发一个jTable用于库存管理的应用程序.

操作是通过在a中键入项目代码jTextField并按下Enter键,该代码的详细信息应该来到jTable.在那里我必须输入数量并按下来Enter计算金额.但是现在通过给出项目代码详细信息jTable,我可以输入数量,但Enter按键jTable焦点会转到下一行,而不进行任何计算.但是,再次按下最后输入的金额Enter上的键jTextField就会被计算出来.我不知道如何解决这个问题,因为我是Java的初学者.我在Netbeans中使用MySQL和Java.

我在下面给出了这个代码..

谢谢..

jTable1.editCellAt(serialNumber, 2);
jTable1.getCellSelectionEnabled();

value1 = new Double(jTable1.getValueAt(serialNumber, 2).toString());
value = new Double(jTable1.getValueAt(serialNumber, 3).toString());
double result = value1 * value;

jTable1.setValueAt(result, serialNumber, 4);
Run Code Online (Sandbox Code Playgroud)

tra*_*god 29

默认键绑定EnterselectNextRowCell在表的动作WHEN_ANCESTOR_OF_FOCUSED_COMPONENT输入地图.您可以替换自己的操作,如下所述.

private static final String solve = "Solve";
KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0);
table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(enter, solve);
table.getActionMap().put(solve, new EnterAction());
...
private class EnterAction extends AbstractAction {

    @Override
    public void actionPerformed(ActionEvent e) {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

另请参见Swing中的键盘绑定(在web.archive.org上镜像).

附录:你可以在这里,这里这里找到更多的例子; 最后一个是JTable具体的.