Ein Beispiel in Java import javax swing import
Ein Beispiel in Java
import javax. swing. *; import java. awt. event. *; // GUI Komponente // Layouts // Ereignisse public class Main. Exception 2{ public static void main(String[] args) { My. Fenster myf = new My. Fenster(); myf. set. Default. Close. Operation( JFrame. EXIT_ON_CLOSE); } } Variablen class My. Fenster extends JFrame { (Objekte) private Container mycont; deklarieren private JPanel mypan; private JText. Field myt. Zahl, myt. Quadrat; private JLabel myl. Zahl, myl. Quadrat; private JButton mybgo; private Quadrat. Wanze myqw;
public My. Fenster(){ Speicher für die eben mybgo = new JButton("Go"); deklarierten Variablen myt. Zahl = new JText. Field("", 6); reservieren myt. Quadrat = new JText. Field("", 20); myl. Zahl = new JLabel("Zahl"); Die Wanze myqw an das Textfeld myl. Quadrat = new JLabel("Das Quadrat davon mybgo anbringen ist"); mypan = new JPanel(); Buttos, Textfelder, myqw = new Quadrat. Wanze(this); usw, an das Panel mycont = get. Content. Pane(); mypan montieren mybgo. add. Action. Listener(myqw); mypan. add(myl. Zahl); mypan. add(myt. Zahl); mypan. add(myl. Quadrat); mit this wird das durch den Aufruf mypan. add(myt. Quadrat); des Konstruktors My. Fenster mypan. add(mybgo); mycont. add(mypan); soeben erzeugte Objekt der Klasse My. Fenster bezeichnet.
set. Title("Meine Zeichnung"); set. Location(30, 60); set. Size(600, 400); set. Visible(true); } public JText. Field gett. Quadrat(){ return(myt. Quadrat); } public JText. Field gett. Zahl(){ return(myt. Zahl); } } Liefert das Objekt myt. Quadrat zurück. Liefert das Objekt myt. Zahl zurück.
class Quadrat. Wanze implements Action. Listener { My. Fenster myf. Verweis; Schauen wir uns double erg; diese Methode public Quadrat. Wanze(My. Fenster f) genauer { an myf. Verweis = f; } public void action. Performed (Action. Event ae) { try{ erg = Double. parse. Double(myf. Verweis. gett. Zahl(). get. Text()); erg = erg * erg; myf. Verweis. gett. Quadrat(). set. Text( Double. to. String(erg)); } Methode muss auf das Textfeld myt. Zahl und myt. Quadrat der In dieser Klassecatch(Throwable My. Fenster zugegriffene){ werden. Innerhalb der Klasse myf. Verweis. gett. Quadrat(). set. Text("Falsche Quadrat. Wanze geht das nur, wenn sich dieses Objekt als Attribut in Eingabe"); der Klasse } Quadrat. Wanze befindet. Aber myt. Zahl und myt. Quadrat befinden sich nicht als Attribute in der Klasse Quadrat. Wanze. Warum } kann man trotzdem auf diese zugreifen? }
class Quadrat. Wanze implements Action. Listener { My. Fenster myf. Verweis; Schauen wir uns double erg; diese Methode public Quadrat. Wanze(My. Fenster f) genauer { an myf. Verweis = f; } public void action. Performed (Action. Event ae) { try{ erg = Double. parse. Double(myf. Verweis. gett. Zahl(). get. Text()); erg = erg * erg; myf. Verweis. gett. Quadrat(). set. Text( Double. to. String(erg)); } catch(Throwable e){ myf. Verweis. gett. Quadrat(). set. Text("Falsche Weil in myf. Verweis durch die Methoden gett. Zahl() und gett. Quadrat() Eingabe"); auf die}Attribute myt. Zahl und myt. Quadrat zugegriffen werden kann ! } }
public void action. Performed (Action. Event ae) { try{ erg = Double. parse. Double(myf. Verweis. gett. Zahl(). get. Text()); erg = erg * erg; und verwandelt ihn in eine myf. Verweis. gett. Quadrat(). set. Text( Zahl. Dabei kann ein Fehler Double. to. String(erg)); auftreten (Text ist keine Zahl) } catch(Throwable e){ wenn im try-Block ein Fehlerobjekt myf. Verweis. gett. Quadrat(). set. Text("Falsche erzeugt (geworfen) wurde, wird es im Eingabe"); holt} den eingegeben catch-Block eingefangen und dort Text aus dem Textfeld bearbeitet. } Bei der Anweisung im try-Block, bei der ein Fehler (z. B. wenn statt einer Zahl eine Zeichenkette eingegeben wurde) auftritt, wird sofort der try-Block verlassen und in die entsprechende catch-Klausel gesprungen. Dann ist die try. . . catch Anweisung beendet und das Programm macht bei der Anweisung weiter, die dem try. . . catch Block folgt.
AUFGABE: 1) Erstellen Sie einen Taschenrechner, der genau ein Textfeld hat und der nur addieren kann. Er soll genau die 2 Buttons = und + haben. 2) Implemetieren Sie einen handelsüblichen Taschenrechner.
- Slides: 8