我在项目中停留了2天,我无法实现如何使 ENTER KEY 像 TAB KEY一样工作 我尝试了 键侦听器, 但是ENTER
KEY具有JTable的默认功能,因此它无法正常工作,而且它一直在下降。我在google上发现我需要使用
键绑定, 但是我无法实现它。
任何人都可以在JTable上给我完整的编码示例吗?请您帮忙。
提前致谢
基本的做法是使用键绑定API,该API在大多数情况下将允许您覆盖许多组件上的默认行为键。
该示例基本上将相同的命名操作应用于Enter
和Tab
键,这使得通过使用single轻松修改其行为Action
。
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ActionMap;
import javax.swing.InputMap;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.KeyStroke;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.table.DefaultTableModel;
public class Test101 {
public static void main(String[] args) {
new Test101();
}
public Test101() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
}
JTable table = new JTable();
InputMap im = table.getInputMap();
im.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "Action.NextCell");
im.put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0), "Action.NextCell");
ActionMap am = table.getActionMap();
am.put("Action.NextCell", new NextCellActioin(table));
DefaultTableModel model = new DefaultTableModel(10, 10);
table.setModel(model);
JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(new JScrollPane(table));
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class NextCellActioin extends AbstractAction {
private JTable table;
public NextCellActioin(JTable table) {
this.table = table;
}
@Override
public void actionPerformed(ActionEvent e) {
int col = table.getSelectedColumn();
int row = table.getSelectedRow();
int colCount = table.getColumnCount();
int rowCount = table.getRowCount();
col++;
if (col >= colCount) {
col = 0;
row++;
}
if (row >= rowCount) {
row = 0;
}
table.getSelectionModel().setSelectionInterval(row, row);
table.getColumnModel().getSelectionModel().setSelectionInterval(col, col);
}
}
}
Tab
我记得通过更改焦点管理器的默认焦点行为来控制的功能
问题内容: 我想检测用户是否按下了jQuery。 这怎么可能?需要插件吗? 编辑:看来我需要使用该方法。 我想知道是否有人知道该命令是否存在浏览器问题-就像我应该知道的浏览器兼容性问题一样? 问题答案: jQuery的全部要点是,您不必担心浏览器的差异。我很确定您可以放心在所有浏览器中都为13。因此,请记住这一点:
问题内容: 我试图以编程方式开始在按键上编辑当前行的第三列。 我实现了一个KeyListener,其中包含以下代码 当我释放Enter时,单元格确实是可编辑的(我可以在末尾键入),但是没有插入符号。 当我用鼠标单击时,行为是预期的(我可以进行编辑,并且存在carret)。 另外,我注意到在释放键时,我的celleditor为null,而在mouseclick上,它也不为null。 我究竟做错了什么
问题内容: 我正在寻找一种创建表单的方法,按Enter键可使焦点移至页面上的“下一个”表单元素。我一直在网上找到的解决方案是… 不幸的是,这似乎仅在IE中有效。因此,这个问题的实质是,是否有人知道适用于FF和Chrome的解决方案?另外,我宁愿不必将 onkeydown 事件添加到表单元素本身,但是如果那是唯一的方法,则必须这样做。 编辑:另外,我已经看到人们提出了这样的问题,即这不是好样式,因为
问题内容: 我在Raspberry Pi上以全屏模式打开了两个图像(使用ristretto图像查看器)。当满足某些条件时,我需要通过ALT + TAB按键组合来显示另一个。我正在尝试使用Popen.communicate,但是我不知道如何通过ALT + TAB这样的组合键。有人有什么想法吗? 我需要的是下面的内容(用工作代码替换“ ALT + TAB”): 我听说过SendKeys软件包,但仅适用
本文向大家介绍jquery实现tab键进行选择后enter键触发click行为,包括了jquery实现tab键进行选择后enter键触发click行为的使用技巧和注意事项,需要的朋友参考一下 这种使用场景为当首页有几个链接需要选择的时候,使用键盘就可以进行触发行为 复制下来放本地用吧 网页上直接测试有问题 效果图: 下面是demo代码 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带
本文向大家介绍WinForm中变Enter键为Tab键实现焦点转移的方法,包括了WinForm中变Enter键为Tab键实现焦点转移的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了WinForm中变Enter键为Tab键实现焦点转移的方法,在进行C#应用程序开发时有一定的实用价值。分享给大家供大家参考。 具体实现代码如下: 希望本文所述变Enter键为Tab键的方法对大家C#程序设计