Archief - Java event handling met if-statement

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Pip

Legacy Member
Hey ik ben momenteel bezig met een event handling met if-statement, maar het voorbeeld in het boek heeft niet de uitwerking die ik verwachte, kan er iemand de fout uithalen aub en een woordje uitleg erbij geven, merci

Code:
class KnopHandler implements ActionListener{
        public void actionPerformed(ActionEvent e){
            if (e.getSource() == knop)
                tekstvak.setText("Je hebt geklikt");
            if (e.getSource() == herstelknop)
                tekstvak.setText("");
        }
    }

Pip

Legacy Member
yep
dmv in de constructor van het paneel het statement
ActionListener handler = new KnopHandler();
en dan aan de knoppen toegevoegd met het statement
herstelknop.addActionListener(handler);
en
knop.addActionListener(handler);

oh maar met het nakijken zag ik dat het door een stomme typfout komt er stond hertselknop /shame XD

Fraggie

Legacy Member
Pip zei:
Code:
class KnopHandler implements ActionListener{
        public void actionPerformed(ActionEvent e){
            if (e.getSource() == knop)
                tekstvak.setText("Je hebt geklikt");
            if (e.getSource() == herstelknop)
                tekstvak.setText("");
        }
    }
Is dat Java uit "En dan is er... Java" 3e editie?

forloRn_

Legacy Member
Pip zei:
yep
dmv in de constructor van het paneel het statement
ActionListener handler = new KnopHandler();
en dan aan de knoppen toegevoegd met het statement
herstelknop.addActionListener(handler);
en
knop.addActionListener(handler);

oh maar met het nakijken zag ik dat het door een stomme typfout komt er stond hertselknop /shame XD

Dan krijg je een compilatiefout en vind ik "heeft niet de uitwerking die ik verwachte" wel een heel vage omschrijving.

Fraggie

Legacy Member
Pip zei:
ja, klopt, waarom?
Het schiet me nu pas te binnen dat je onlangs nog maar een thread gemaakt heb op dit forum. Dus men bemerking is voor de hand liggend.

Opnieuw dezelfde opmerking, "KnopHandler" is in mijn ogen een veel te algemene klasse naam. Wees eens een rebel en noem die klasse ButtensClickEventHandler. Ik denk dat ze doorheen dat boek altijd maar KnopHandler gebruiken en dan plots met anonieme klassen afkomen.

Geloof me je zal door dit te doen waarschijnlijk meer snapper waarmee je bezig bent. Een aantal maand geleden kreeg ik een UML diagramma van iemand waarin volgende klassen stonden: KnopHandler, KnopHandler2, KnopHandler3, .. Geef toe, dat zegt niets. Als ik hem dan vraag waarom?! Zegt hij mij doodleuk: "Zo staat het toch in dat boek?"

Pip

Legacy Member
dit is ook maar een voorbeeld vanuit het boek zelf, ik heb net een oefening gemaakt voor een applicatie die 3 getallen met elkaar vergelijkt en van klein naar groot ordent. De knop die ik daarvoor had gemaakt had ik sorteerKnop genoemd en de inwendige klasse van de handler heb ik SorteerKnopHandler genoemd. Maar het is dan beter dat ik die bijvoorbeeld SoorteerKnopClicked maak? Ik probeer ook altijd namen te geven die "logisch" zijn in de oefeningen die ik maak.

Fraggie

Legacy Member
Dan ben je al goed bezig, maar ik kom groen vanaf ik KnopHandler zie staan :).

Xtralecherus

Legacy Member
Wat ik deed om knoppen of events te doen werken was dit:

Code:
import java dinges natuurlijk .........

public class GuiString extends JFrame implements ActionListener
{

blablabla declareren.......

public GuiString()
    {
        this.setComponentOrientation(ComponentOrientation.UNKNOWN);
        this.setResizable(false);
        this.setTitle("Titel......");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setBounds(new Rectangle(120, 140, 640, 480));

        btnStart = new JButton();
        btnStart.setBounds(new Rectangle(210, 10, 150, 30));
        btnStart.setText("Start");
        btnStart.addActionListener( this );

        this.setLayout(null);
        this.setVisible(true);
        this.setBackground(new Color(238, 238, 238));
        
        this.add(btnStart);
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == btnStart)
        {
           MethodeDoeDit();
            
        }
    }

}

this is eigenlijk het huidig object

cool_boy_ke

Legacy Member
Da's wel handig bij kleine applicaties, bedankt voor de tip!
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan