I min ene GUI-klasse har jeg en knap "Næste". Dertil er der tilknyttet en actionListener. Når knappen aktiveres, skal hver checkbox tjekkes for, om den er vinget af. Men de har hver især tilknyttet en ItenListener. Problemet er, at jeg ikke kan finde ud af samspillet mellem de to typer listeners. Skal det hele være under actionPerformed() eller itemChanged()? Her er koden: public void actionPerformed(ActionEvent ae) {
if(ae.getSource() == EMail)
{ JOptionPane.showMessageDialog(this,
"Denne funktion er blackboxet","Error Message",
JOptionPane.ERROR_MESSAGE);
}
if(ae.getSource() == Print)
{
JOptionPane.showMessageDialog(this,
"Denne funktion er blackboxet","Error Message",
JOptionPane.ERROR_MESSAGE);
} if(ae.getSource() == Afslut) { //hvad skal der gemmes og hvor? //mp3Player.gemMP3(); System.exit(0);
hvis du smider alle dine checkboxes i et array, og laver en simpel forløkke som:
JCheckBox[] checks = new JCheckBox[]{EMail, Print, Afslut}; for(int i = 0;i<checks.length;i++) { if (checks[i].isSelected()) { //if i = blah, gør noget if = noget andet blah gør noget andet } }
Groft sagt bør du ikke bruge itemstatelisteners, medmindre du ret faktisk ønsker at gøre noget når det sker.. buttons hænger sammen med actionlisteners medmindre du har en meget speciel situation.. Jeg går lidt ud fra at du vil have at man trykker på næste før der overhovedet skal ske noget?..
1. Hvad mener du med at "ovenstående sker vel aldrig", det sker vel hvis udtrykket er sandt.
2. Der er ikke noget der hedder itemstatelisteners
3. Der er noget som hedder ItemListener og groft sagt bruger man dem når situationen kræver det.
4. Buttons hænger ikke kun sammen med actionListeners, uanset situationen
5. At lave en for løkke af JCheckBox er dobbelt konfekt, der skal jo ske noget forskelligt altafhængig af hvilken der er valgt, derfor en simpel if den bedste og mest simple i situationen - du slipper jo den if alligevel
og ja man kan sagtens bruge itemlisteners, men hvorfor bruge en itemlistener til en simpel knap der skal udføre noget når der trykkes på det... det er jo ikke nogen speciel situation... det jeg mener er at actionlisteners er normalt mere end nok til en knap... og nej bagved hænger buttons ikke kun sammen med actionlisteners... men du behøver ik andet i en standard situation..
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.