【问题标题】:Java - Check for selection on JListJava - 检查 JList 上的选择
【发布时间】:2011-04-05 23:41:24
【问题描述】:

有没有办法查看我的 JList list 是否被选中?

我这样说是因为我有一个 JList 和 JTextfield,当我在 JList 中键入“F”来执行 keyevent 操作时。在我关注它之后,字母 F 被键入到 JTextField 中。

例如:假设我去 JTextField 并输入“hi”。我回到我的 JList 并单击所选项目并按“F”从列表中删除它......然后在 JTextField 中......即使我在 JList 上,我也会输入“F”。

明白我在说什么?

【问题讨论】:

  • 很遗憾,我不能。但我假设这不会发生?如果是这样,我可以稍后再创建一个 SSCCE。我现在有点着急。
  • 不应将在 JList 上生成的 KeyEvent 传递给 JTextField。在您发布问题之前,应先启动 SSCCE。
  • @Dan,别无礼。作为临时修复,请使用带有 Ctrl 或 Alt 的热键,这样不会影响文本字段。
  • @tulskiy:对不起,他之前对他很粗鲁。
  • 您的意思是当文本字段获得焦点时,您希望您之前在 JList 中键入的击键显示在 JTextField 中?

标签: java swing


【解决方案1】:

使用JList的getSelectedIndex()isSelectionEmpty()函数。

【讨论】:

    【解决方案2】:

    使用getSelectedIndex() 是最简单的方法。

    假设您有一个对象列表MyClass,您想将其放入JList

    List<MyClass> myClassList = new ArrayList<MyClass>();
    // myclass.add ....
    
    JList jList = new JList(myClassList.toArray());
    

    现在,获取选中的元素:

    function MyClass getSelectedElement(){
        int index = jList.getSelectedIndex();
        if (index < 0){
            System.out.println("Nothing selected.");
            return null;
        }
        else{
            return myClassList.get(index);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-29
      • 2016-01-01
      • 2012-04-23
      • 2014-07-28
      • 2013-11-01
      • 1970-01-01
      • 2012-03-24
      • 2010-12-21
      相关资源
      最近更新 更多