2013-04-28 46 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); 
      } 
     } 
    }); 

問題多於解決了! :)。

相關問題