Arbeitsblatt 5 – EAD II NetBeans Graphische Oberfläche für Uhrenanzeige mit NetBeans Für die Einführung in die Verwendung von NetBeans erstellen wir die graphische Oberfläche für die Uhr nun mit NetBeans. Aufgabe 1: Projekt erstellen Starten Sie NetBeans und erstellen Sie ein neues Projekt. Wählen Sie als Kategorie “Java” und als Projekt “Java Application”, klicken Sie auf “Next”. Beachten Sie beim Erstellen des neuen Projektes, dass die Checkbox bei “Create Main Class” deaktiviert sein muss. Wir wollen später die Klasse, die das Fenster öffnet, als Main Class festlegen. Aufgabe 2: Klasse für Oberfläche hinzufügen Für die Benutzungsoberfläche brauchen wir eine Klasse, die ein Fenster darstellen kann. Wir wollen dazu die Klasse von JFrame ableiten. Wählen Sie aus dem Menü File New File, dann die Kategorie “Swing GUI Forms” und “JFrame Form”. Nennen Sie die Klasse “GUI”. In der Files-Ansicht links können Sie sehen, welche Dateien nun erstellt wurden. Sie sehen nun das Fenster in der Design-Ansicht. Hinweise Benutzungsoberfläche NetBeans Rechts neben der Oberfläche sollte in einem Fenster die Palette mit den Komponenten angezeigt werden, die per Drag&Drop auf der Oberfläche platziert werden können. Ist sie nicht zu sehen, können Sie sie unter dem Menüpunkt “Windows” anzeigen lassen (aber nur, wenn Sie die Designansicht geöffnet haben). Ist eine Komponente auf der Oberfläche ausgewählt, sehen Sie unter der Palette die Eigenschaften dieser Komponente in der Ansicht “Properties”. Sie können dort geändert werden oder spatter im Programm per Befehl. Durch Klick auf “Source” oberhalb des Fensters können Sie auf die Quelltextansicht umschalten. Aufgabe 3: Klassen für Uhr hinzufügen Nun wollen wir noch unsere Klassen für die Uhr hinzufügen, die wir in BlueJ erstellt haben. Leider gibt es die Import-Funktion in der aktuellen Version von NetBeans nicht mehr, so werden wir das manuell tun. Eine neue Klasse erstellen wir über das Menü File New File und wählen dann Java und Java Class. Im nächsten Fenster müssen wir den Namen eingeben. Wir nennen die Klasse Nummernanzeige bzw. Uhrenanzeige. Wir erhalten nun eine neue Klasse ohne Inhalt. Den Quelltext für die Klasse kopieren wir aus den .java-Dateien, die wir in BlueJ erstellt haben. Um die zwei Klassen zu erstellen, müssen wir das zweimal ausführen. Aufgabe 4: Oberfläche erstellen Platzieren Sie ein Label und einen Button auf der Oberfläche. Schauen Sie sich den entstandenen Quelltext an. Orientieren Sie sich nun am Vorgehen beim BlueJ-Programm. Wir brauchen auch hier die Instanzvariable für die Uhrenanzeige und müssen diese im Konstruktor erzeugen und die aktuelle Uhrzeit dem Label zuweisen. Durch Rechtsklick auf den Button öffnet sich ein Kontextmenü. Aus diesem wählen Sie Events Action actionPerformed. Automatisch wird die innere Klasse mit dem Methodenrahmen erzeugt, in den Sie nun die Befehle eintragen können, die bewirken, dass beim Klick auf den Button die Uhrzeit eine Minute weitergesetzt wird. Hinweise zum automatisch generierten Code In der Quelltext- (Source-) Ansicht ist der selbst geschriebene und der automatisch generierte Code zu sehen. Grau hinterlegte Zeilen können nicht gelöscht oder geändert werden. Mit Klick auf + und – können Bereiche aus- und eingeklappt werden. Schauen Sie sich an, welcher Quelltext nach dem Hinzufügen von Komponenten erzeugt wird: Instanzvariablen stehen am Ende der Klasse, zur Initialisierung wird eine MEthode initComponents() erstellt, die standardmäßig verborgen ist. Aufgabe 5: Programm erweitern Setzen Sie Aufgabe 6 der Vorwoche um: Button zum getrennten Erhöhen der Stunden. Aufgabe 6 : Währungsumrechner Schließen Sie das Uhrenprojekt. Erstellen Sie ein neues Projekt, fügen Sie eine Klasse hinzu, abgeleitet von JFrame. Platzieren Sie die Komponenten, die für einen Währungsumrechner gebraucht werden, z.B. so: Neu hinzu kommt die Komponente TextField, über die Nutzereingaben gemacht werden können. Hinweise zum TextField Diese Komponente arbeitet mit Strings, d.h., wenn man mit setText(String) einen neuen Inhalt zuweist oder mit getText() den aktuellen Inhalt liest, arbeitet man immer mit Strings. Da wir mit den Werten aber rechnen wollen, müssen wir diese Strings in Zahlenwerte umwandeln. Die erste Anweisung liest den Inhalt des Textfeldes in die Variable inhalt. String inhalt = jTextField1.getText(); Umwandeln des Strings inhalt in einen integer-Wert: int x = Integer.parseInt(inhalt); Umwandeln des Strings inhalt in einen double-Wert: double y = Double.parseDouble(inhalt); Achtung: wenn im Textfeld keine Zahl steht, erhalten Sie eine Fehlermeldung. Es wird nichts geprüft! Double-Werte müssen mit Punkt als Dezimaltrennzeichen eingegeben werden. Umwandeln einer Zahl x in einen String (für double entsprechend anpassen): String ergebnis = Integer.toString(x);