Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Ein Beispiel in Java. import javax.swing.*; // GUI Komponente import java.awt.*; // Layouts import java.awt.event.*; // Ereignisse public class MainException2{

Ähnliche Präsentationen


Präsentation zum Thema: "Ein Beispiel in Java. import javax.swing.*; // GUI Komponente import java.awt.*; // Layouts import java.awt.event.*; // Ereignisse public class MainException2{"—  Präsentation transkript:

1 Ein Beispiel in Java

2 import javax.swing.*; // GUI Komponente import java.awt.*; // Layouts import java.awt.event.*; // Ereignisse public class MainException2{ public static void main(String[] args) { MyFenster myf = new MyFenster(); myf.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE); } class MyFenster extends JFrame { private Container mycont; private JPanel mypan; private JTextField mytZahl, mytQuadrat; private JLabel mylZahl, mylQuadrat; private JButton mybgo; private QuadratWanze myqw; Variablen (Objekte) deklarieren

3 public MyFenster(){ mybgo = new JButton("Go"); mytZahl = new JTextField("",6); mytQuadrat = new JTextField("",20); mylZahl = new JLabel("Zahl"); mylQuadrat = new JLabel("Das Quadrat davon ist"); mypan = new JPanel(); myqw = new QuadratWanze(this); mycont = getContentPane(); mybgo.addActionListener(myqw); mypan.add(mylZahl); mypan.add(mytZahl); mypan.add(mylQuadrat); mypan.add(mytQuadrat); mypan.add(mybgo); mycont.add(mypan); Speicher für die eben deklarierten Variablen reservieren mit this wird das durch den Aufruf des Konstruktors MyFenster soeben erzeugte Objekt der Klasse MyFenster bezeichnet. Die Wanze myqw an das Textfeld mybgo anbringen Buttos, Textfelder, usw, an das Panel mypan montieren

4 setTitle("Meine Zeichnung"); setLocation(30,60); setSize(600,400); setVisible(true); } public JTextField gettQuadrat(){ return(mytQuadrat); } public JTextField gettZahl(){ return(mytZahl); } Liefert das Objekt mytQuadrat zurück. Liefert das Objekt mytZahl zurück.

5 class QuadratWanze implements ActionListener { MyFenster myfVerweis; double erg; public QuadratWanze(MyFenster f) { myfVerweis = f; } public void actionPerformed (ActionEvent ae) { try{ erg = Double.parseDouble(myfVerweis. gettZahl().getText()); erg = erg * erg; myfVerweis.gettQuadrat().setText( Double.toString(erg)); } catch(Throwable e){ myfVerweis.gettQuadrat().setText("Falsche Eingabe"); } Schauen wir uns diese Methode genauer an In dieser Methode muss auf das Textfeld mytZahl und mytQuadrat der Klasse MyFenster zugegriffen werden. Innerhalb der Klasse QuadratWanze geht das nur, wenn sich dieses Objekt als Attribut in der Klasse QuadratWanze befindet. Aber mytZahl und mytQuadrat befinden sich nicht als Attribute in der Klasse QuadratWanze. Warum kann man trotzdem auf diese zugreifen?

6 class QuadratWanze implements ActionListener { MyFenster myfVerweis; double erg; public QuadratWanze(MyFenster f) { myfVerweis = f; } public void actionPerformed (ActionEvent ae) { try{ erg = Double.parseDouble(myfVerweis. gettZahl().getText()); erg = erg * erg; myfVerweis.gettQuadrat().setText( Double.toString(erg)); } catch(Throwable e){ myfVerweis.gettQuadrat().setText("Falsche Eingabe"); } Schauen wir uns diese Methode genauer an Weil in myfVerweis durch die Methoden gettZahl() und gettQuadrat() auf die Attribute mytZahl und mytQuadrat zugegriffen werden kann !

7 public void actionPerformed (ActionEvent ae) { try{ erg = Double.parseDouble(myfVerweis. gettZahl().getText()); erg = erg * erg; myfVerweis.gettQuadrat().setText( Double.toString(erg)); } catch(Throwable e){ myfVerweis.gettQuadrat().setText("Falsche Eingabe"); } 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. wenn im try-Block ein Fehlerobjekt erzeugt (geworfen) wurde, wird es im catch-Block eingefangen und dort bearbeitet. holt den eingegeben Text aus dem Textfeld und verwandelt ihn in eine Zahl. Dabei kann ein Fehler auftreten (Text ist keine Zahl)

8 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.


Herunterladen ppt "Ein Beispiel in Java. import javax.swing.*; // GUI Komponente import java.awt.*; // Layouts import java.awt.event.*; // Ereignisse public class MainException2{"

Ähnliche Präsentationen


Google-Anzeigen