【问题标题】:JTable: change traversal orderJTable:改变遍历顺序
【发布时间】:2023-11-17 17:57:01
【问题描述】:

我想在按回车时水平遍历 JTable。我试过JTable.changeSelection,但它似乎不起作用。任何想法如何改变遍历行为?

【问题讨论】:

    标签: java swing jtable traversal


    【解决方案1】:

    阅读Key Bindings。您可能希望“使用不同的 KeyStroke 共享一个动作

    【讨论】:

      【解决方案2】:

      Enter 是垂直遍历,TAB 是水平遍历,只要按住 Enter 事件并生成 Tab 事件或为 Tab 事件调用函数。但是你应该设置下一个属性:

                  table.setSelectionMode(
                          ListSelectionModel.SINGLE_SELECTION);
      

      【讨论】:

      • 这是我班上的附加代码,抱歉我复制了,没有检查,目前正在编辑...
      • -1 绕道 - 当然我可以通过 Moskau-Peking-SanFrancisco 从柏林前往阿姆斯特丹 ...
      【解决方案3】:
      JTable.getInputMap(JInternalFrame.WHEN_ANCESTOR_OF _FOCUSED_COMPONENT)
      .put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "SOME_ACTION");
      JTable.getInputMap(JInternalFrame.WHEN_FOCUSED)
      .put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "SOME_ACTION");
      
      JTable.getActionMap().put("SOME_ACTION", actions);
      
      
      actions = new AbstractAction() {
      
      public void actionPerformed(ActionEvent ae) {
      //This action will get fired on Enter Key
      }
      };
      

      【讨论】:

      • 代码顺序不对。此外,第一行被打破。一些解释可能会对 OP 有所帮助。