Toon posts:

[JAVA]Hoe een knop definieren in een for-loop

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een variabel aantal knoppen wat ik wil maken.
Nu wilde ik die knoppen laten declareren door middel van een for-loop,
ik ben tot de volgende code gekomen:
code:
1
2
3
4
5
6
for (int i=0; i<AANTALBUDDIES; i++){
            
    JButton1.setText(i);
    getContentPane().add(JButton1);
    JButton1.setBounds(12,12,110,26);
}

alleen nu wil ik dat die 1 van JButton1 dus de waarde heeft van i, iemand een idee hoe ik dat kan doen??

of is het niet mogelijk.....

Verwijderd

Dan moet je een array van buttons maken lijkt me :)

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 31-08 22:49
Ben niet echt thuis in swing, dus maar ff iets dergelijks voor awt .. zou moeten werken, kan hier echter niet testen:

Button knop[10]=null;
for(int i=0; i<10; i++)
{
knop[i]= new Button("" + i);
knop[i].setBounds(hierwatvariabelen);
add(knop[i]);
}

edit - initialisatie vergeten ..

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Is heel goed mogelijk met een array:
code:
1
2
3
4
5
6
7
8
9
int aantalBuddies = 10;
JButton[] myButtons = new JButton[aantalBuddies];

for (int i=0; i<aantalBuddies; i++){
            
    myButtons[i] = new JButton("" + i);
    getContentPane().add(myButtons[i]);
    myButtons[i].setBounds(12,12,110,26);
}

een paar opmerkingen:
setBounds: liever niet null gebruiken als layout (persoonlijk)
AANTALBUDDIES, zo min mogelijke final static's gebruiken, andere variabelen zo veel mogelijk met kleine letters schrijven :)

Verwijderd

Topicstarter
thanks!!!

Ik heb die AANTALBUDDIES zo geschreven omdat dit nog allemaal test werk is, en die dingen er nog uit moeten :)

Ik ga weer ff verder klooien,
bedankt voor jullie hulp *D

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 31-08 22:49
Op maandag 26 november 2001 13:32 schreef wasigh het volgende:
Is heel goed mogelijk met een array:
code:
1
2
3
4
5
6
7
8
9
int aantalBuddies = 10;
JButton[] myButtons = new JButton[aantalBuddies];

for (int i=0; i<aantalBuddies; i++){
            
    myButtons[i] = new JButton("" + i);
    getContentPane().add(myButtons[i]);
    myButtons[i].setBounds(12,12,110,26);
}

een paar opmerkingen:
setBounds: liever niet null gebruiken als layout (persoonlijk)
AANTALBUDDIES, zo min mogelijke final static's gebruiken, andere variabelen zo veel mogelijk met kleine letters schrijven :)
Om niet een nieuwe draad te starten ..
waarom is het beter om zo min mogelijk final statics te gebruiken? op het eerste gezicht lijkt het me eerlijk gezegd logisch om het bv in dit geval wel te doen ....

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Op maandag 26 november 2001 13:52 schreef Dash2in1 het volgende:

[..]

Om niet een nieuwe draad te starten ..
waarom is het beter om zo min mogelijk final statics te gebruiken? op het eerste gezicht lijkt het me eerlijk gezegd logisch om het bv in dit geval wel te doen ....
Als van te voren vast ligt hoeveel buttons je wilt hebben(dus statisch ipv dynamisch) dan deel ik je mening. Ik snap dus ook niet waarom een niet static beter zou zijn. Ik snap ook niet hoe wasigh kan afleiden dat hij gebruikt gemaakt heeft van een final static (misschien aan de hand van hoodletter gebruik van AANTALBUDDIES?)

Verwijderd

Topicstarter
jah dat gebeurd meestal met die dingen, die schrijf je met hoofdletters.

Maarehm, ik heb mn probleem nog niet geheel op kunnen lossen. Door de bovenstaande code van Wasigh ben ik wel wat verder gekomen, maar er wordt nu een NullPointerException gegeven die wordt veroorzaakt door de array.
Dit is iets wat ik al meer met java ben tegen gekomen en heb die array -bij het declareren- steeds maar gevuld met lege waarden, maar kan dat niet anders???

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 31-08 22:49
wat bedoel je met leeg? null? ""?

Verwijderd

Topicstarter
""

maar dat doe ik dus liever niet (vind zo'n gedoe, dat ding eerst vullen met "" en daarna weer vullen met de waarden die ik er eigenlijk in wil hebben....

Verwijderd

Topicstarter
Onder het mom van "hij werkt toch" heb ik het nu zo opgelost, maar ik vind het niet echt mooi...
code:
1
2
3
4
5
6
7
8
9
10
11
try{
   for (int i=0; i<AANTALBUDDIES; i++){
            
    myBuddies[i].setText(""+(i+1));
    getContentPane().add(myBuddies[i]);
    myBuddies[i].setBounds(12,12,110,26);
   }
}
catch (NullPointerException e){
    System.out.println(e);
}

Kan het niet mooier worden opgelost??

Verwijderd

Topicstarter
niet dus, want hij werkt niet :(

iemand andere ideeen om die NullPointerException weg te werken???

  • Wirf
  • Registratie: April 2000
  • Laatst online: 16-09 11:52
Op dinsdag 27 november 2001 09:28 schreef Sh4keM het volgende:
niet dus, want hij werkt niet :(

iemand andere ideeen om die NullPointerException weg te werken???
myBuddies[i] = new JButton("");

denk ik dat je vergeten bent en anders is je array misschien te klein

Heeft sinds kort zijn wachtwoord weer terug gevonden!


Verwijderd

Topicstarter
je zit soms zo in die code :(
Dat je de meest simpele dingen niet ziet :'(

dankjewel ;)
Pagina: 1