[英]How can change the focus on the JTable?
我已经构建了简单的java swing应用程序。 现在在我的JPanel中,我有一些JTextField和一个JTable。 因此,我实现了一个自定义焦点,如果焦点位于JTextFiled1上并按ENTER,焦点将自动更改为JTextFiled2等。接收焦点的最后一个元素是JTable。 现在我不希望焦点在第一列,而是在第四列,所以我有以下代码:
textDescrizione.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0), "myTabAction");
textDescrizione.getActionMap().put("myTabAction", new AbstractAction("myTabAction") {
public void actionPerformed(ActionEvent e) {
tableConti.requestFocus();
tableConti.editCellAt(0,4);
}
});
此代码有效,我将焦点放在我的第四单元格上,但是如果我尝试在键盘上按向右按钮,则焦点不在第五列,而是在第一列。 我该如何更改?
另一个问题是,我在JTable上实现了keyListener,因此,如果在JTable具有焦点时尝试按F5键,则会调用一个方法。 这也可以,但是重点仍然放在单元上。
这是代码:
keyListener
public class MyKeyListenerSalvataggio extends KeyAdapter{
public void keyReleased(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_F5){
salva();
}
}
};
tableConti.addKeyListener(new MyKeyListenerSalvataggio());
在我按F5之后,方法salva()完成这种情况:
如您所见,我无法清除表的值并删除单元格上的焦点。
您需要告诉表格停止编辑单元格。 请参阅表格停止编辑以获取以下两种方法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.