JTable输入关键操作

时间:2015-02-04 04:56:27

标签: java swing jtable keyevent enter

我正在使用JTable开发一个用于库存管理的应用程序。

操作是,通过在JTextField中输入项目代码并按Enter键,该代码的详细信息应该显示在JTable。在那里,我必须输入数量,然后按Enter键计算金额。

但现在通过提供商品代码,详细信息将发送到JTable,我可以输入数量,但按Enter键JTable焦点转到下一行,不进行任何计算。我在Netbeans中使用MySQL和Java。

我找到了一些代码。您之前为此问题提供的此代码

private void createKeybindings(JTable table) {
    table.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "Enter");
    table.getActionMap().put("Enter", new AbstractAction() {
        @Override
        public void actionPerformed(ActionEvent ae) {

        }
    });
}

但我对这段代码并不清楚。

谢谢...

1 个答案:

答案 0 :(得分:1)

如果您有三个列,例如数量,价格,金额,那么您可以使用以下代码覆盖TableModel的setValueAt(...)方法:

public void setValueAt(Object value, int row, int column)
{
    super.setValueAt(value, row, column);

    if (column == 0 || column == 1)
    {
        TableModel model = (TableModel)e.getSource();
        int quantity = ((Integer)model.getValueAt(row, 0)).intValue();
        double price = ((Double)model.getValueAt(row, 1)).doubleValue();
        Double value = new Double(quantity * price);
        model.setValueAt(value, row, 2);
    }
}