gpt4 book ai didi

java - Java- JTable键绑定(bind)

转载 作者:行者123 更新时间:2023-12-01 06:17:27 25 4
gpt4 key购买 nike

我想更改JTable上ENTER键的默认操作,使其具有与F2键相同的功能。因此,我使用了键绑定,并且效果很好。唯一的问题:如果第二次在同一单元格上停止F2键编辑,但是ENTER键没有执行相同的操作,则总是在按下时开始编辑。这是我的代码:

InputMap im = table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0);
KeyStroke f2 = KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0);
im.put(enter, im.get(f2));


谢谢

最佳答案

正如@Sage所说,在编辑任何KeyEvent时,编辑器都会侦听它,而不是JTable侦听它,因此我在JTable的CellEditor中添加了一个KeyListener。我不知道这是否是最好的解决方案,但目前它能按预期工作。这是代码:

field.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent arg0) {
if(arg0.getKeyCode()==KeyEvent.VK_ENTER)
table.getCellEditor().stopCellEditing();}});


字段是我用来设置CellEditor的JFormattedTextfield:

DefaultCellEditor editor = new DefaultCellEditor(field);
for(int i=0; i<table.getColumnCount(); i++)
table.getColumnModel().getColumn(i).setCellEditor(editor);

关于java - Java- JTable键绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20775623/

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