Script Java

Script Java Script Java

29.01.2014 Aufrufe

5.1 ActionEvent und ActionListener 5Event Handling ActionEvent ActionListener Das vorliegende Kapitel erläutert das Event Handling. Die Ausführungen beziehen sich auf ein Beispielprogramm, welches das Event Handling am Beispiel von ActionEvents und einem ActionListener aufzeigt. 5.1 ActionEvent und ActionListener Die folgende Application „Game“ implementiert ein Spiel, bei welchem der Benutzer gegen den Computer antritt. Hierbei hat man zu Beginn eine gewisse Anzahl von Elementen, von welchen man nun abwechslungsweise zieht. Man kann bei einem Zug höchstens bis zu drei Elemente aufs Mal nehmen, darf aber nicht passen. Wer das letzte Element wegnimmt, hat verloren. import java.awt.*; import java.awt.event.*; public class UserFrame extends Frame implements ActionListener { private Label message; private TextField text; private Button turn, take1, take2, take3; private void place(Component comp,int x,int y,int width,int height) { comp.setBounds(x, y, width, height); add(comp); } public UserFrame() { setTitle("Game"); setLayout(null); setSize(360,240); setResizable(false); place(message=new Label(),30, 50,300, 20); place(text=new TextField(),30,70,300, 20); 124

5.1 ActionEvent und ActionListener } place(turn=new Button(),140,140,80,20); place(take1=new Button("TAKE ONE"),40,100,80,20); place(take2=new Button("TAKE TWO"),140,100,80,20); place(take3=new Button("TAKE THREE"),240,100,80,20); turn.addActionListener(this); take1.addActionListener(this); take2.addActionListener(this); take3.addActionListener(this); text.setEchoChar('•'); setVisible(true); newGame(); public void actionPerformed(ActionEvent event) { String command = event.getActionCommand(); if (command.equals("START")) start(); else if (command.equals("NEW GAME")) newGame(); else if (command.equals("YOUR TURN")) myTurn(); else if (command.equals("TAKE ONE")) userTakes(1); else if (command.equals("TAKE TWO")) userTakes(2); else if (command.equals("TAKE THREE")) userTakes(3); } public int numberOfTokens() {return text.getText().length();} public void decrementTokens(int i) { text.setText(text.getText().substring(i)); } public void setTakeButtonsVisible(boolean yes) { take1.setVisible(yes); take2.setVisible(yes); take3.setVisible(yes); } public void newGame() { message.setText("Enter tokens and START:"); text.setText(""); text.setEditable(true); text.requestFocus(); turn.setLabel("START"); setTakeButtonsVisible(false); } public void start() { switch (numberOfTokens()) { case 0: message.setText("Please try again to enter tokens and START!"); break; case 1: message.setText("Entering only one single token is unfair!"); break; default: text.setEditable(false); myTurn(); } } public void userTakes(int k) { 125

5.1 ActionEvent und ActionListener<br />

5Event Handling<br />

ActionEvent<br />

ActionListener<br />

Das vorliegende Kapitel erläutert das Event Handling. Die Ausführungen beziehen sich auf<br />

ein Beispielprogramm, welches das Event Handling am Beispiel von ActionEvents und<br />

einem ActionListener aufzeigt.<br />

5.1 ActionEvent und ActionListener<br />

Die folgende Application „Game“ implementiert ein Spiel, bei welchem der Benutzer<br />

gegen den Computer antritt. Hierbei hat man zu Beginn eine gewisse Anzahl von<br />

Elementen, von welchen man nun abwechslungsweise zieht. Man kann bei einem Zug<br />

höchstens bis zu drei Elemente aufs Mal nehmen, darf aber nicht passen. Wer das letzte<br />

Element wegnimmt, hat verloren.<br />

import java.awt.*;<br />

import java.awt.event.*;<br />

public class UserFrame extends Frame implements ActionListener {<br />

private Label message;<br />

private TextField text;<br />

private Button turn, take1, take2, take3;<br />

private void place(Component comp,int x,int y,int width,int height) {<br />

comp.setBounds(x, y, width, height);<br />

add(comp);<br />

}<br />

public UserFrame() {<br />

setTitle("Game");<br />

setLayout(null);<br />

setSize(360,240);<br />

setResizable(false);<br />

place(message=new Label(),30, 50,300, 20);<br />

place(text=new TextField(),30,70,300, 20);<br />

124

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!