eu andei dando uma pesquisada em KeyListeners e KeyBindings para utiliza-los em JTables, mas simplesmente não consigo fazer funcionar, segue o código:
onde tb1 é minha JTable com meu próprio model definido
sei que não está funcionando, porque não entra nem no “system.out.println”
valeu galera!
KeyBindings:
tb1.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(
"ENTER"),
"check");
tb1.getActionMap().put("check", new AbstractAction() {
public void actionPerformed(ActionEvent e) {
System.out.println("eee");
}
});
KeyListener:
tb1.addKeyListener(new myKeyListener());
class myKeyListener extends KeyAdapter {
@Override
public void keyReleased(KeyEvent e) {
System.out.println("eeeee");
if (e.getKeyCode() == KeyEvent.VK_ENTER || e.getKeyCode() == KeyEvent.VK_0 || e.getKeyCode() == KeyEvent.VK_1 || e.getKeyCode() == KeyEvent.VK_2 || e.getKeyCode() == KeyEvent.VK_3 || e.getKeyCode() == KeyEvent.VK_4 || e.getKeyCode() == KeyEvent.VK_5 || e.getKeyCode() == KeyEvent.VK_6 || e.getKeyCode() == KeyEvent.VK_7 || e.getKeyCode() == KeyEvent.VK_8 || e.getKeyCode() == KeyEvent.VK_9) {
DigCartaoPonto dcp = new DigCartaoPonto();
boolean b = false;
while (!b) {
int cols = tb1.getColumnCount();
int row = tb1.getSelectedRow(), col = tb1.getSelectedColumn();
boolean ent = false;
if (col % 2 != 0 && col < cols && col > 4) {
ent = true;
}
if (ent) {
String[] val = dcp.getVal((String) mCard.getValueAt(row, col), (String) mCard.getValueAt(row, col + 1));
mCard.setValueAt(val[0], row, col);
mCard.setValueAt(val[1], row, col + 1);
} else {
String[] val = dcp.getVal("--:--", (String) mCard.getValueAt(row, col));
mCard.setValueAt(val[1], row, col);
}
}
}
}
}
@Edit:
E o mouseListener também não:
tb1.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
row = tb1.getSelectedRow();
col = tb1.getSelectedColumn();
}
@Override
public void mouseClicked(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void mouseExited(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
});