ActionListener не применяется к JList.getSelectedindex (x), работает только один индекс - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь научиться программировать, но мне кажется, что я застрял в этой нелегкой проблеме, но я не знаю, что делать дальше, не могли бы вы мне помочь?

IСоздаю простую программу для еды, когда вы выбираете Object из JList и затем нажимаете JButton eat, он должен добавить текущие «точки» объектов, представленные значением int, в индикатор выполнения между 0-100.Это работает только для .getSelectedindex (0), но когда я выбираю любой из других объектов в списке и нажимаю "съесть", он не добавит точки int на индикатор выполнения.

Здесь ниже приведен коднаписано до сих пор.

eat.addActionListener(this);
    List<Food> listan = new ArrayList<>();
    String[] foodnames = new String[4];
    listan.add(new Food("Beef",35,2));
    listan.add(new Food("Potato",4,5));
    listan.add(new Food("Vegetable",1,5));
    listan.add(new Food("Water",0,2));
    foodnames[0]=listan.get(0).getName();
    foodnames[1]=listan.get(1).getName();
    foodnames[2]=listan.get(2).getName();
    foodnames[3]=listan.get(3).getName();
    listantvå = new JList<String>(foodnames);
    listantvå.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);


    public void actionPerformed(ActionEvent e) {



    if(e.getSource()==eat && listantvå.getSelectedIndex()==0) {

    pb.setValue(pb.getValue()+listan.get(0).getFullp());
    listan.get(0).setQuantity(listan.get(0).getQty()-1);

    if(listan.get(0).getQty()<=0) {
    listan.get(0).setFullP(0);
    }

    else if(e.getSource()==eat && listantvå.getSelectedIndex()==1) {
    pb.setValue(pb.getValue()+listan.get(1).getFullp());
    listan.get(1).setQuantity(listan.get(1).getQty()-1);

    if(listan.get(1).getQty()<=0) {
    listan.get(1).setFullP(0);

}

...