[JAVA} JPanel a ArrayList

0

Kiedy dodaję obiekty JPanel do kontenera ArrayList i innych wszystkie poprzednio dodane elementy stają się puste (nie chodzi o typ null, ale o to że kiedy próbuję pobrać obiekt z tablicy i dodać na formatkę to nic się nie pojawia z wyjątkiem ostatniego elementu tablicy). Po usunięciu kodu dodającego ostatni z elementów , to jego poprzednik działa poprawnie a inne nie. Co może być powodem problemu i jak można go rozwiązać?

0
  1. null NIE jest typem.2
  2. Co to jest formatka ?
  3. wklej kod odpowiedzialny za to, bo nikt tu nie umie czytac w myslach na odleglosc.</b>
0

Kod napiszę z pamięci, bo nie mam chwilowo dostępu do orginalnego:

JPanel podstawa = new JPanel();
ArrayList <Component>elementy = new Arraylist();
int nrElementu;

public void wyswietlNastepny(){
  nrElementu++;
  if(elementy.size()>nrElementu){
    nrElementu=0;
  }
  podstawa.removeAll();
  podstawa.add(elementy.get(nrElementu));
}

public void init(){
  podstawa.setBackground(Color.YELLOW);

  JPanel p1 = new JPanel();
  p1.setBackground(Color.BLUE);
  elementy.add(p1);

  JPanel p2 = new JPanel();
  p2.setBackground(Color.GREEN);
  elementy.add(p2);

  JPanel p3 = new JPanel();
  p3.setBackground(Color.RED);
  elementy.add(p3);
}

Nie mówie, że to jest idealny kod, bo nie mam aktualnie żadnego innego edytora do sprawdzenia, ale widać z niego moją koncepcję, po wywołaniu funkcji wyswietlNastepny() program kolejno pokazuje kolory: żółty, żółty, czerwony, żółty, żółty, czerwony,żółty, żółty, czerwony... zamiast niebieski, zielony, czerwony, niebieski, zielony, czerwony...

0

proszę tylko nie pisać, że podałem "Jpanel' zamiast "JPanel", bo trudno dbać o szczegóły w szkolnej bibliotece.

0
hubert_nnn napisał(a)

  if(elementy.size()>nrElementu){
    nrElementu=0;
  }

Np tutaj masz blad, chyba chciales dac odwrotnie ten znak.

1 użytkowników online, w tym zalogowanych: 0, gości: 1