gpt4 book ai didi

java - 在编辑 jtable 单元格时如何检测按下的输入?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:11:06 27 4
gpt4 key购买 nike

我在 jtable 上有一个 keylistener,这样当有人按下 enter 时就会发生一些计算。但是,这只有在该人不进行编辑时才会发生。我想在某人完成单元格编辑并按 Enter 键完成并关闭编辑时应用此操作。

我想不通,有人做过或知道怎么做吗?

基本上,现在要完成操作,人们必须按两次 Enter,一次是为了结束编辑,另一次是为了我想要发生的操作,我想让它在编辑时只需要一次。

谢谢

最佳答案

您可以自定义您自己的编辑器。使用 DefaultCellEditor而不是使用 KeyListener 你应该使用 KeyBindings .

请参阅此示例。

            JTable table = new JTable(myModel);
JTextField cell = new JTextField();
final TableCellEditor cellEditor = new DefaultCellEditor(cell);
table.getColumnModel().getColumn(column).setCellEditor(cellEditor);
InputMap iMap = cell.getInputMap(JComponent.WHEN_FOCUSED);
iMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), KeyEvent.getKeyText(KeyEvent.VK_ENTER));
ActionMap aMap = cell.getActionMap();
aMap.put(KeyEvent.getKeyText(KeyEvent.VK_ENTER), new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
if(callSomeOperationsIsOk()){
cellEditor.stopCellEditing();
}else{
cellEditor.cancelCellEditing();
}
}
});
}

在教程中阅读更多信息 How to use Tables ,也许你遇到了我之前看到的同样的问题 question

关于java - 在编辑 jtable 单元格时如何检测按下的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20982624/

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