2016-04-14 5 views
0

Мне нужно создать флотманмен для моего проекта Swing. Я создал кнопку добавления, но я не могу понять, что нужно сделать кнопку удаления любой помощи? Вот мой код для addbutton.Swing - кнопка добавления JList

addbutton.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent event) { 
      //make sure you preserve the previously selected list items 
      int size = rightlist.getModel().getSize(); 
      Set objects = new LinkedHashSet(); 
      for (int i = 0; i < size; i++) { 
       objects.add(rightlist.getModel().getElementAt(i)); 
      } 
      objects.addAll(Arrays.asList(leftlistfreight.getSelectedValues())); 

      rightlist.setListData(objects.toArray()); 
     } 
    }); 

EDIT!

ArrayList Код

List<FreightBoats> freightBoat = new ArrayList<FreightBoats>(); 
    freightBoat.add(new FreightBoats("Boat Name : Stefan |","This Boat can Carry Conitainer : ",25000)); 
    freightBoat.add(new FreightBoats("Boat Name : Sminroff |","This Boat can Carry Conitainer : ",30000)); 
    freightBoat.add(new FreightBoats("Boat Name : Container 2000 |","This Boat can Carry Conitainer : ",2500)); 
    freightBoat.add(new FreightBoats("Boat Name : Windows |","This Boat can Carry Conitainer : ",25200)); 
    freightBoat.add(new FreightBoats("Boat Name : Unhuman |","This Boat can Carry Conitainer : ",200)); 
    freightBoat.add(new FreightBoats("Boat Name : ElPolako |","This Boat can Carry Conitainer : ",300000)); 
    freightBoat.add(new FreightBoats("Boat Name : BrainDead |","This Boat can Carry Conitainer : ",10000)); 
    freightBoat.add(new FreightBoats("Boat Name : WSHR | ","This Boat can Carry Conitainer : ",34005)); 
    freightBoat.add(new FreightBoats("Boat Name : Grolsch ","This Boat can Carry Conitainer : ",10565 

ответ

1

Не играйте с массивами или ArrayLists. Нет необходимости воссоздавать ListModel с помощью метода setListData().

Вместо этого обновления должны быть сделаны непосредственно на ListModel.

Прочтите раздел из учебника Swing по телефону How to Use Lists. Пример ListDemo показывает вам, как «добавлять» и «удалять» элементы из ListModel с помощью кнопок «Hire» и «Fire».

+0

Я думаю, мне нужно использовать ArrayList beacouse, я держу имена своих лодок в массиве. Я положил код массива. Проверьте его и скажите, есть ли другая альтернатива, которую я могу использовать. Спасибо –

+1

@JohnJohnson, 'Мне кажется, мне нужно использовать ArrayList beacouse, я держу имена моих лодок в массиве.' - Нет, вы этого не делаете. Дизайн вашего приложения неверен. Если вы показываете данные в JList, данные сохраняются в ListModel. Нет необходимости в отдельном массиве. 'если есть другая альтернатива'. Конструкция и использование компонентов Swing основаны на дизайне Model-View-Controller. Я уже предложил правильное решение и указал вам на рабочий пример. Использование отдельного массива идет вразрез с этим принципом проектирования. Массив не нужен. В ListModel есть методы доступа к данным. – camickr

Смежные вопросы