当前位置: 首页 > 面试题库 >

在jTable上使用Enter键像Tab键

公冶和豫
2023-03-14
问题内容

我在项目中停留了2天,我无法实现如何使 ENTER KEYTAB KEY一样工作 我尝试了 键侦听器, 但是ENTER
KEY具有JTable的默认功能,因此它无法正常工作,而且它一直在下降。我在google上发现我需要使用
键绑定, 但是我无法实现它。

任何人都可以在JTable上给我完整的编码示例吗?请您帮忙。

提前致谢


问题答案:

基本的做法是使用键绑定API,该API在大多数情况下将允许您覆盖许多组件上的默认行为键。

该示例基本上将相同的命名操作应用于EnterTab键,这使得通过使用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#程序设计