Choice

AWT

In dit voorbeeld wordt de Choice klasse besproken

Applet

H8P7.jpg (16640 bytes)

Programmacode

// AwtChoice.java
// Selectie van een lettertype met de Choice button 
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
 
public class AwtChoice extends Applet implements ItemListener  {
   private Choice choiceFont;
   private TextField tekstField= new TextField( "Hallo, allemaal", 20 );
   private Font font;

   public void init()  {
      tekstField.setEditable( false );
      choiceFont = new Choice();
      // voeg items toe aan de choiceButton
      for (int i = 0; i<getToolkit().getFontList().length; i++)
        choiceFont.addItem(getToolkit().getFontList()[i]);
                  
      font = new Font( choiceFont.getItem( 0 ),Font.PLAIN, 18);
      tekstField.setFont( font ); 
      
      add( tekstField );
      add( choiceFont );

      choiceFont.addItemListener(this);
   }

   public void itemStateChanged( ItemEvent e )  {
      String status;
       // filter Choice button event
      if ( e.getSource() instanceof Choice ) {
         font = new Font( choiceFont.getSelectedItem(), Font.PLAIN, 18);
         tekstField.setFont( font );

         status = "Lettertype " +  choiceFont.getSelectedIndex();
                 status += " uit " + choiceFont.getItemCount();
         showStatus( status );
      }
   }
}

Uitleg

Wat is een Choice?

De Choice heet in Windows een combobox. Eerst een lege Choice klasse aangemaakt daarna worden de items toegevoegd met add() of addItem(). Er kunnen ook elementen worden tussen gevoegd met insert. Elementen kunnen verwijderd worden met remove() en removeAll().

Geselecteerd items kunnen op naam of index opgehaald worden.

Een Choice implementeerd het ItemSelectable interface en vuurt een ItemEvent.

init()

Nadat de Choice is gealloceerd wordt deze gevuld met de methode addItem. Het is de bedoeling dat de Choice wordt gevuld met alle beschikbare lettertype. De beschikbare lettertype staan in de array FontList van het Toolkit. Zowel de Toolkit als de FontList zijn te bereiken via hun bijbehorende get methode. In een for-lus worden de lettertype één voor één opgehaald en toegevoegd aan de Choice.
    choiceFont = new Choice();
    
    for (int i = 0; i<getToolkit().getFontList().length; i++)
        choiceFont.addItem(getToolkit().getFontList()[i]);
Met het eerste lettertype wordt de tekst weergegeven.
font = new Font( choiceFont.getItem( 0 ),Font.PLAIN, 18);
tekstField.setFont( font );
Toevoegen aan LayoutManager en ItemListener
add( tekstField );
add( choiceFont );

choiceFont.addItemListener(this);

itemStateChanged()

Met de methode getSelectedItem wordt het geselecteerd lettertype uit de Choice opgehaald en gebruikt in het textField.
   font = new Font( choiceFont.getSelectedItem(), Font.PLAIN, 18);
   tekstField.setFont( font );
Op de statusbalk wordt de index van het geselecteerde item -met getSelectedIndex- en het totaal aantal items -met getItemCount- in de Choice weergegeven.
status = "Lettertype " +  choiceFont.getSelectedIndex();
status += " uit " + choiceFont.getItemCount();
showStatus( status );

de Choice klasse

  extends Component
public Choice(); constructor
   
addItem(String item); 
add(String item)
voeg een element toe onderaan
insert(String item, int index) voeg een element toe op positie index
remove(int index)
remove(String item)
verwijder een element op naam of nummer
removeAll() maak alles leeg
   
String getItem(int index);  haal een element
int getItemCount(); tel het aantal elementen
   
public void select(int pos);  selecteer deze index
public void select(String str);  selecteer deze tekst
public int getSelectedIndex();  haal de geselecteerde index
public String getSelectedItem(); haal de selecteerde tekst
copyright © Little World 1998