Containerin yksi ominaisuus on, että siihen talletetaan tieto kaikista sen sisältämistä komponenteista listaan ja myöhemmin komponentteja voi hakea indeksin perusteella getComponent-metodilla. Normaalisti komponentit menevät tälle listalle siinä järjestyksessä kuin komponentteja lisätään, mutta lisätessä on myös mahdollista sanoa mihin kohtaan listaa komponentti lisätään. getComponents-metodi palauttaa Containerin sisältämät komponentit listana.
import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; public class Esimerkki extends Runnable {
private Container alusta;
@Override
this.alusta = new Container(); for (int i=0; i<5; i++) {
this.kehys.add(nappula); vaihdaNappulojenTekstit(); public void vaihdaNappulojenTekstit() {
for (Component komponentti : this.alusta.getComponents()) {
nappula.setText("" + i); i++; |
Kuten esimerkissä näkyy getComponents-metodin palauttaman listan alkiot ovat Component-tyyppisiä. Tällä kertaa tiedettiin, että kaikki komponentit ovat JButton tyyppisiä, joten tyyppimuunnos (typecasting), (JButton), voitiin tehdä.
Huomaa, että jos käydään läpi JFramen sisältämiä komponentteja niin komponentit tulee pyytää JFrame.getContentPane()-metodin kautta, koska komponentteja ei lisätä suoraan JFrameen vaan JRootPane-olioon.
public void vaihdaNappulojenTekstit() {
for (Component komponentti : this.alusta.getComponents()) {
nappula.setText("" + i); i++; |
Viimeksi muokattu 2.7.2012