7
Gerrit Burkert, Karl Rege 03.03.20 1 INF2 – Informatik für Ingenieure 2 Java Praktikum 1: Einführung Aufgabe 1: Erstellen und Ausführen einer Java Konsolen-Anwendung Für dieses Semester können Sie wieder NetBeans verwenden. Sie sollten Java auch schon in- stalliert haben. Nun sollen die einzelnen Schritte zum Erstellen einer ersten Java-Applikation durchgeführt wer- den. Erstellen Sie ein neues Java Projekt vom Typ Java Application. Dabei wird automatisch eine Klasse mit einer Main Methode generiert; ergänzen Sie letztere so, dass "Hello World!" ausgegeben wird und starten Sie es innerhalb der IDE. Erweitern Sie ihr Programm so, dass zwei Fliesskomma-Zahlen eingelesen werden und deren Summe ausgege- ben wird.

Java Praktikum 1: Einführungwaikiki.zhaw.ch/~rege/inf2_fs20/P21_praktikum.pdfJava Praktikum 1: Einführung Aufgabe 1: Erstellen und Ausführen einer Java Konsolen-Anwendung Für dieses

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Java Praktikum 1: Einführungwaikiki.zhaw.ch/~rege/inf2_fs20/P21_praktikum.pdfJava Praktikum 1: Einführung Aufgabe 1: Erstellen und Ausführen einer Java Konsolen-Anwendung Für dieses

Gerrit Burkert, Karl Rege 03.03.20 1

INF2 – Informatik für Ingenieure 2

Java Praktikum 1:Einführung

Aufgabe 1: Erstellen und Ausführen einer Java Konsolen-AnwendungFür dieses Semester können Sie wieder NetBeans verwenden. Sie sollten Java auch schon in-stalliert haben.

Nun sollen die einzelnen Schritte zum Erstellen einer ersten Java-Applikation durchgeführt wer-den. Erstellen Sie ein neues Java Projekt vom Typ Java Application.

Dabei wird automatisch eine Klasse mit einer Main Methode generiert; ergänzen Sie letztere so,dass "Hello World!" ausgegeben wird und starten Sie es innerhalb der IDE. Erweitern Sie ihrProgramm so, dass zwei Fliesskomma-Zahlen eingelesen werden und deren Summe ausgege-ben wird.

Page 2: Java Praktikum 1: Einführungwaikiki.zhaw.ch/~rege/inf2_fs20/P21_praktikum.pdfJava Praktikum 1: Einführung Aufgabe 1: Erstellen und Ausführen einer Java Konsolen-Anwendung Für dieses

Gerrit Burkert, Karl Rege 03.03.20 2

INF2 – Informatik für Ingenieure 2

Aufgabe 2: Rangliste als Konsolen-AnwendungErstellen Sie ein neues Projekt "RanglisteJava"; diesmal soll aber keine Main Klasse generiertwerden.

Fügen Sie die drei beigefügten Quellen (Teilnehmer,java, Rangliste.java, RanglistenView.java)zu Ihrem Projekt hinzu

Fügen Sie zusätzlich das "Rangliste.csv" File hinzu (Vorsicht: letzteres direkt insProjektverzeichnis).

Page 3: Java Praktikum 1: Einführungwaikiki.zhaw.ch/~rege/inf2_fs20/P21_praktikum.pdfJava Praktikum 1: Einführung Aufgabe 1: Erstellen und Ausführen einer Java Konsolen-Anwendung Für dieses

Gerrit Burkert, Karl Rege 03.03.20 3

INF2 – Informatik für Ingenieure 2

Jetzt sollten Sie es starten können. Es sollte sich gleich verhalten wie die C Anwendung.

AufgabeStudieren Sie die Quellen und beachten Sie die Analogie/Ähnlichkeit zum C Code. Es machtnichts, wenn Sie diese noch nicht vollständig verstehen; in den nächsten Wochen sollte aber derJava Code für Sie verständlich werden.

Aufgabe 3: Rangliste als graphische (GUI-) AnwendungFügen Sie dem Project ein JFrame Form (mit Rechtsklick auf dieApplication New JFrameForm) hinzu

Nennen Sie es z.B. RanglisteFrame

Bei einem Frame wird automatisch die Design View im GUI Builder angezeigt. Der GUI Bilder istein Werkzeug zur Erstellung graphischer Benutzerschnittstellen in Java. Der von NetBeans istübrigens einer der besten. Auf der rechten Seite sehen Sie die GUI Controls, die Sie mittelsHinüberziehen auf die Designfläche platzieren können. Wir werden Label, Button, TextField undTextArea verwenden. Mittels dem "Source" Knopfes kann die Quelle betrachtet werden. Der GUIBuilder generiert Code direkt in dieser Quelle, die aber "zusammengefaltet" und nichtveränderbar ist. Erst durch anklicken des (+) wird diese sichtbar.

Page 4: Java Praktikum 1: Einführungwaikiki.zhaw.ch/~rege/inf2_fs20/P21_praktikum.pdfJava Praktikum 1: Einführung Aufgabe 1: Erstellen und Ausführen einer Java Konsolen-Anwendung Für dieses

Gerrit Burkert, Karl Rege 03.03.20 4

INF2 – Informatik für Ingenieure 2

Bei einzelnen Controls müssen noch die Properties angepasst werden, z.B. Beschriftung desLabels und Knöpfe: Rechtsklick auf das Control (in der Design Sicht) Properties.

Das fertige GUI könnte etwa so aussehen. Das grosse Feld unten ist eine TextArea.

Page 5: Java Praktikum 1: Einführungwaikiki.zhaw.ch/~rege/inf2_fs20/P21_praktikum.pdfJava Praktikum 1: Einführung Aufgabe 1: Erstellen und Ausführen einer Java Konsolen-Anwendung Für dieses

Gerrit Burkert, Karl Rege 03.03.20 5

INF2 – Informatik für Ingenieure 2

Um es zu starten können Sie die Frame Main Class in den Run Projekt Optionen setzen und esganz normal starten (grünes Pfeilsymbol). Dafür müssen Sie aber die Main Klasse aufRanglistenFrame setzen. Im Frame wurde eine neue main-Methode generiert, die das Frameöffnet.

Das GUI sollte nun geöffnet werden, hat aber natürlich noch keine Funktionalität.

Hinzufügen der Funktionalität

Um die Rangliste zu verwalten, werden noch folgende Variablen innerhalb der RanglisteFrameKlasse hinzugefügt.

public class RanglisteFrame extends javax.swing.JFrame { static final int MAXT = 100; static String filename = "Rangliste.csv"; static int maxT = 0; static Teilnehmer[] zeiten = new Teilnehmer[MAXT];

Jetzt sollen die Knöpfe mir Funktionalität versehen werden. Durch einen Doppelklick auf einender Knöpfe in der Design View wird automatisch ein Methodenrumpf generiert, der dann späterbeim Anklicken ausgeführt wird. Diese Methode kann mit eigenem Code an dergekenntzeichneten Stelle ergänzt werden.

Der eigene Code soll eingefügt werden.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {// TODO add your handling code here:}

Auf die Werte der Eingabefelder des Frames kann über this.<FeldName> .getText() zugegriffenwerden. Der FeldName kann aus den Properties bestimmt werden. Es wird ein String retourniert,

Page 6: Java Praktikum 1: Einführungwaikiki.zhaw.ch/~rege/inf2_fs20/P21_praktikum.pdfJava Praktikum 1: Einführung Aufgabe 1: Erstellen und Ausführen einer Java Konsolen-Anwendung Für dieses

Gerrit Burkert, Karl Rege 03.03.20 6

INF2 – Informatik für Ingenieure 2

der dann weiter verarbeitet werden kann. Unten sehen Sie ein Beispiel wie der Teilnehmer unddie Zeit aus den ersten beiden Textfeldern verarbeitet werden kann. Lese Teilnehme ist eineneue eigene Methode innerhalb RanglisteFrame. Methoden innerhalb derselben Klassenkönnen wie gewohnt aufgerufen werden (siehe jButton1ActionPerformed)

Teilnehmer leseTeilnehmer() { Teilnehmer tn = new Teilnehmer(); tn.name = this.jTextField1.getText(); String time = this.jTextField2.getText(); tn.h = Integer.parseInt(time.split(":")[0]); tn.min = Integer.parseInt(time.split(":")[1]); tn.sec = Integer.parseInt(time.split(":")[2]); return tn;}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { zeiten[maxT] = leseTeilnehmer(); maxT++;}

Die Anzeige der Werte soll in der grossen TextArea erfolgen; diese Methode fügt die Ranglistezur TextArea hinzu.

void teilnehmerAusgeben(int maxT, Teilnehmer[] tn) { int i; this.jTextArea1.setText(""); for (i = 0; i < maxT; i++) { String output = String.format("%s Zeit:\t%02d:%02d:%02d\n", tn[i].name, tn[i].h, tn[i].min, tn[i].sec);

this.jTextArea1.setText(this.jTextArea1.getText() + output);

}

}Diese Methode wird dann vom entsprechenden Knopf aufgerufen.

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) { teilnehmerAusgeben(maxT,zeiten);}

Vervollständigen Sie die Funktionalität der restlichen Knöpfe analog.

Page 7: Java Praktikum 1: Einführungwaikiki.zhaw.ch/~rege/inf2_fs20/P21_praktikum.pdfJava Praktikum 1: Einführung Aufgabe 1: Erstellen und Ausführen einer Java Konsolen-Anwendung Für dieses

Gerrit Burkert, Karl Rege 03.03.20 7

INF2 – Informatik für Ingenieure 2

4. Anpassen der Darstellung auf Plattform Look (optional)Standardmässig wird der sog. Nimbus Look gesetzt, der nicht jedermanns Geschmack ist. Umden Look anzupassen, ändern wir den von Nimbus (dem Default) auf System Look and Feel inder main Methode; Klick auf (+) und Ersetzen von 1) durch 2). Damit ist die Java Anwendungoptisch nicht mehr von einer nativen zu unterscheiden.

javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName()

);

2

1