Dodawanie JPanels przez pętlę
Sprawiło, że to działa! Dzięki chłopaki!
Kod następuje. użyłemBoxLayout
ponieważ myślałem, że będzie to idealne rozwiązanie do układania pytań jeden na drugim, ale teraz mam problemy z układem ... Kiedy układam kilka pytań, panele pytań zaczynają się nakładać. jakieś pomysły?
panels1 = new MultipleChoice[5];
setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
for(int i=0; i<4; i++){
panels1[i]= new MultipleChoice();
panels1[i].setAlignmentX(CENTER_ALIGNMENT);
add(panels1[i]);
}
setVisible(true);
Pracuję nad projektowaniem apletu Test online.
Test ma pytania wielokrotnego wyboru i pytania prawda / fałsz. Aby skonfigurować test, stworzyłem dwaJPanel
klasy, jedna dla pytania wielokrotnego wyboru i jedna dla pytań prawda / fałsz. Kiedy więc zostanie utworzony test, po prostu dynamicznie dodam te panele doJPanel
pojemnik według niezmiennej liczby pytań.
Po pierwsze, jak mogę dynamicznie dodawać nowe panele do panelu? Myślałem o zadeklarowaniu tablicyJPanel
rodzaj. Stworzyłem, a następnie dodałem obiekty tej klasy panelu za pomocąfor
pętla:
MultitipleChoicePanel[] PanelArray;
for (...){
PanelArray[i] = new MultipleChoicePanel();
containerpanel.add(PanelArray[i]);
}
Nie wiem, czy jest to technicznie możliwe.
To jest mój pierwszy raz, gdy korzystam ze Swinga i próbowałem to zrobić, ale oczywiście nie zadziałało.
Czy ktoś ma pomysł, jak poprawnie dynamicznie dodawać te panele?
Po drugie, który z menedżerów układu najlepiej pasuje do panelu kontenera, aby pasował do każdego nowego panelu dodanego bezpośrednio pod poprzednim?
Myślałem o dynamicznym ustawianiu aGridLayout
jednej kolumny i dodaj wiersze, gdy dodaję panele. Ale bardzo dynamicznie zmagam się z modyfikowaniem huśtawek.
Jakieś sugestie?
Dziękuję bardzo za Twoją pomoc!