Button

AWT

Een voorbeeld met drukknoppen

Applet

H8P2.jpg (6298 bytes)

Programmacode

// AwtButton.java
// Maak een aantal drukknoppen
import java.applet.Applet;
import java.awt.event.*;
import java.awt.*;

public class AwtButton extends Applet implements ActionListener {
    private Button toggleButton, levendeButton;

    public void init()  {
	levendeButton = new Button( "Klik mij" );
	toggleButton = new Button( "toggle" );
      
	// voeg buttons toe aan de LayoutManager
	add( levendeButton );
	add( toggleButton );
	// meld de buttons aan bij de ActionListener (this)
	levendeButton.addActionListener(this);
	toggleButton.addActionListener(this);
    }

   // afhandeling van de events 
    public void actionPerformed( ActionEvent e )  {
	// controleer of het een Button was
	if ( e.getSource() instanceof Button ) {
	    // Als het levendeButton dan label op de statusbalk
	    if ( e.getSource() == levendeButton )
		showStatus( "Knop " + e.getActionCommand() + " was ingedrukt"  );
	    // als toggleButton dan wordt levendeButton geenabled
	    else if (e.getSource() == toggleButton) {
		if (levendeButton.isEnabled() ) 
		     levendeButton.setEnabled(false);
		else 
		     levendeButton.setEnabled(true);
	    }
         }
    }
}

Uitleg

Een Button klasse is een drukknop met een tekst. Het formaat van de knop wordt ingesteld aan de hand van de lengte van de tekst. De knop is dus gedrapeerd rondom de tekst. Dit geeft soms een rommelige layout omdat er verschillende knoppen met verschillende grootte onder elkaar staan. De Button heeft een constructor, die de tekst kan meekrijgen. En er zijn de methode getLabel en setLabel om de tekst te lezen en te schrijven.

Het indrukken van een knop genereert een ActionEvent, die ergens in actionPerformed methode van een ActionListener wordt opgevangen.

methode actionPerformed
In de actionPerformed methode worden de volgende stappen onderzocht

    public void actionPerformed( ActionEvent e )  {
	if ( e.getSource() instanceof Button ) {
	    if ( e.getSource() == levendeButton )
		showStatus( "Knop " + e.getActionCommand() + " was ingedrukt"  );
	    else if (e.getSource() == toggleButton) {
		if (levendeButton.isEnabled() ) 
		     levendeButton.setEnabled(false);
		else 
		     levendeButton.setEnabled(true);
	    }
         }
    }

De Button klasse

public Button(); constructors
public Button(String label);  
   
public String getLabel(); haal de knoptekst
public void setLabel(String label); stel de knop tekst in
setEnabled(boolean enable) de knop is actief of inactief
copyright ® Little World 1998