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
0
- null NIE jest typem.2
- Co to jest formatka ?
- 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.