我正在使用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) {
}
});
}
但我对这段代码并不清楚。
谢谢...
答案 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);
}
}