gpt4 book ai didi

java - 如何改变对 JTable 的关注?

转载 作者:行者123 更新时间:2023-12-01 11:16:59 24 4
gpt4 key购买 nike

我已经构建了简单的 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()方法完成了,情况是这样的:

enter image description here

如您所见,我无法清除表格的值,也无法删除单元格上的焦点。

最佳答案

您需要告诉表格停止编辑单元格。请参阅Table Stop Editing有几种方法:

  1. 在 ActionListener 中停止单元格编辑,或者
  2. 您可以设置表格的属性,使其在失去焦点时停止编辑

关于java - 如何改变对 JTable 的关注?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31704814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com