【问题标题】:How do you edit an element by index in a JList?如何在 JList 中按索引编辑元素?
【发布时间】:2013-12-29 15:54:59
【问题描述】:

如何在 Java Swing 中设置 JList 元素的文本/名称?

我创建了一个包含 5 个列表元素的列表。

当我这样做时:

int currentIndex = list.getSelectedIndex();

我取当前元素的索引。 我想编辑/修改当前元素索引的文本。 有什么办法吗?

例如

list.setText(CurrentIndex,"new text")

【问题讨论】:

  • 如需尽快获得更好的帮助,请发帖SSCCE

标签: java swing jlist settext


【解决方案1】:

使用DefaultListModel。它有setElementAt(E element, int index)add(int index, E element)方法

  • setElementAt(E element, int index) - 将此列表的指定索引处的组件设置为指定元素。该位置的前一个组件被丢弃。

  • add(int index, E element) - 在此列表中的指定位置插入指定元素。


您可以使用DefaultListModel 初始化您的JList,然后使用所有DefaultListModels 方法

DefaultListModel model = new DefaultListModel();
JList list = new JList(model);

那就用它的方法

model.setElementAt("new text", index);
model.add(index, "new text");

见: DefaultListModel javadoc for more methods | How to use Lists tutorial

【讨论】:

    【解决方案2】:

    //鼠标点击事件

    私人无效 jListClientFileHeaderMappedMouseClicked(java.awt.event.MouseEvent evt) { // TODO 在此处添加您的处理代码:

        JList<String> theList = (JList) evt.getSource();
        if (evt.getClickCount() == 2) { //
    
            JFrame frame = new JFrame();
    
            int index = theList.locationToIndex(evt.getPoint());
            if (index >= 0) {
    
                final JList list = ((JList) (evt.getComponent()));
                if (list.getSelectedIndex() != -1) {
                    int i = list.getSelectedIndex();
                    System.out.println(list.getSelectedIndex());
                    DefaultListModel<String> listModel = (DefaultListModel<String>) jListClientFileHeaderMapped.getModel();
                    Object result = JOptionPane.showInputDialog(frame, "value:");
                    System.out.println(result);
                    listModel.remove(i); //remove jlist item value 
                    listModel.add(i, result.toString()); //add dialog text value
    
                }
            }
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-05
      • 2015-12-26
      • 1970-01-01
      • 1970-01-01
      • 2012-04-10
      • 2010-12-16
      • 1970-01-01
      相关资源
      最近更新 更多