Java - 如何将元素添加到其他两个之间的DefaultListModel?

时间:2013-04-28 23:41:10

标签: java jlist

就是这样:

btnInsertL.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {
            String textField1Content = textField1.getText();
            if (textField1.getText().contains("Nova Categoria")) {
            } else {
                modelL.addElement(textField1Content);
            }
        }
    });

显然,当我点击这个“btnInsertL”时,它会根据textField1的名称在我的列表中添加一个新元素。但是,如果我们希望这个过程更加“动态”,那么我们就会遇到一个微妙的问题:

它始终将新元素添加到列表的END中,忽略选择。如何根据已选择的元素添加新元素?我想这涉及DefaultListModel的元素索引。

Element 1
Element 2
Element 3

让我们假设选择了“元素2”。当我点击“btnInsertL”时,我希望FOURTH元素在元素2和元素3之间。

嗯,我认为这个问题不是没用,我希望它对某人也有帮助。我非常感谢你的关注。

3 个答案:

答案 0 :(得分:3)

你检查过JavaDocs吗?

查看DefaultListModel.add(int, E)

答案 1 :(得分:1)

检查DefaultListModel.add(int, E)并使用ActionEvent的getSource()方法查看选择了哪个按钮。

答案 2 :(得分:1)

感谢MadProgrammer,我找到了答案:

btnInsertL.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {
            String textField1Content = textField1.getText();
            if (textField1.getText().contains("Nova Categoria")) {
            } else {
                modelL.add(listL.getSelectedIndex() + 1,textField1Content);
            }
        }
    });

问题不仅仅是解决了! :)