/ / JTable въведете ключови действия - java, swing, jtable, keyevent, enter

JTable въведете ключови действия - java, swing, jtable, keyevent, enter

Разработвам приложение, използващо JTable за управление на запасите.

Действието е, като въведете кода на елемента в a JTextField и чрез натискане на клавиша enter, трябва да се появят подробности за този код JTable, И там трябва да напиша количеството и да натисна enter, за да изчисли сумата.

Но сега, давайки код на елемента, подробностите идват на JTable, и мога да напиша количеството, но там чрез натискане на клавиша Enter JTable фокусът преминава към следващия ред и не се прави изчисление. Използвам MySQL и Java в Netbeans.

Намерих някакъв код. Този код сте посочили по-рано за този проблем

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 за отговор № 1

Ако имате три колони като Количество, Цена, Сума, можете да замените 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);
}
}