2013-04-28 32 views
1

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

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”时,我希望第四个元素位于元素2和元素3之间。

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

回答

3

您检查了JavaDocs的权利?

看看DefaultListModel.add(int, E)

+0

非常感谢!对不起,初学者错误:)。我会回答我的代码的答案,然后给你正确的答案。谢谢! – 2013-04-28 23:50:08

1

检查DefaultListModel.add(int, E)和使用动作事件的getSource()方法来查看选中了哪个按钮。

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); 
      } 
     } 
    }); 

问题多于解决了! :)。

相关问题