Script Java

Script Java Script Java

29.01.2014 Aufrufe

6.1 Instanzmethode versus Klassenmethode 6 Instanz-/Klassenmethoden ItemEvent, ItemListener Visibility Modifiers In diesem Kapitel wird die Unterteilung von Methoden in Instanz- und Klassenmethoden vollzogen. Es wird ebenfalls auf die Sichtbarkeitsattribuierung mit Hilfe der sogenannten visibility modifiers eingegangen. Das ganze Kapitel basiert auf einem Beispielprogramm, welches in zwei Versionen vorliegt. 6.1 Instanzmethode versus Klassenmethode Das Programm „Random Sentences - Version 1“ implementiert wiederum ein Spiel, bei welchem der Computer die durch den Benutzer eingegebenen Satzbausteine zufällig zu ganzen Sätzen kombiniert. import java.util.*; import java.awt.*; import java.awt.event.*; public class Rndm { static Random rndm = new Random(); } static public int nextInt(int n) {return Math.abs(rndm.nextInt())%n;} public class UserFrame extends Frame implements ActionListener{ private Label sentence; private TextField subjectField, verbField, objectField; private List subjectList, verbList, objectList; private void place(Component comp,int x,int y,int width,int height) { comp.setBounds(x, y, width, height); add(comp); } public UserFrame() { setTitle("Sentences"); 146

6.1 Instanzmethode versus Klassenmethode } setLayout(null); setSize(560,420); Button button; place(sentence=new Label(),30,30,460,20); place(button=new Button("SHOW"),490,30,40,20); button.addActionListener(this); place(subjectField=new TextField(),30,60,160,20); subjectField.addActionListener(this); place(verbField=new TextField(),200,60,160,20); verbField.addActionListener(this); place(objectField=new TextField(),370,60,160,20); objectField.addActionListener(this); place(subjectList=new List(),30,90,160,300); place(verbList=new List(),200,90,160,300); place(objectList=new List(),370,90,160,300); setVisible(true); sentence.setText("Enter phrases and press RETURN!"); subjectField.requestFocus(); private void update(List list, TextField textField) { if (!textField.getText().equals("")) { list.addItem(textField.getText()); textField.setText(""); } } } public void actionPerformed(ActionEvent event){ if (event.getSource() instanceof TextField) { //RETURN update(subjectList, subjectField); update(verbList, verbField); update(objectList, objectField); subjectField.requestFocus(); } else if (event.getActionCommand().equals("SHOW")) { sentence.setText( subjectList.getItem(Rndm.nextInt(subjectList.getItemCount()))+" "+ verbList.getItem(Rndm.nextInt(verbList.getItemCount()))+" "+ objectList.getItem(Rndm.nextInt(objectList.getItemCount()))); } } public class TestProg { public static void main(String[] args) {new UserFrame();} } 6.1.1 Zum Programm Die Application bittet den Benutzer, Sätze einzugeben, wobei Subjekt, Verb und Objekt getrennt voneinander in die separaten TextFields geschrieben werden müssen. Durch Drücken der RETURN-Taste werden die Elemente aus den Textfeldern in die 147

6.1 Instanzmethode versus Klassenmethode<br />

6<br />

Instanz-/Klassenmethoden<br />

ItemEvent, ItemListener<br />

Visibility Modifiers<br />

In diesem Kapitel wird die Unterteilung von Methoden in Instanz- und Klassenmethoden<br />

vollzogen. Es wird ebenfalls auf die Sichtbarkeitsattribuierung mit Hilfe der sogenannten<br />

visibility modifiers eingegangen. Das ganze Kapitel basiert auf einem Beispielprogramm,<br />

welches in zwei Versionen vorliegt.<br />

6.1 Instanzmethode versus Klassenmethode<br />

Das Programm „Random Sentences - Version 1“ implementiert wiederum ein Spiel, bei<br />

welchem der Computer die durch den Benutzer eingegebenen Satzbausteine zufällig zu<br />

ganzen Sätzen kombiniert.<br />

import java.util.*;<br />

import java.awt.*;<br />

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

public class Rndm {<br />

static Random rndm = new Random();<br />

}<br />

static public int nextInt(int n) {return Math.abs(rndm.nextInt())%n;}<br />

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

private Label sentence;<br />

private TextField subjectField, verbField, objectField;<br />

private List subjectList, verbList, objectList;<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("Sentences");<br />

146

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!