ad hauk

 

©2013 • ad hauk

Java-Infos

Was ist eigentlich dieses Java?

Java ist neben einer indonesischen Insel, einem Modetanz der 1920er, Grundgewebe aus Leinen, einem Brettspiel auch eine objektorientierte Programmiersprache.

Also was ist nun Java genau?

imgJava wurde von der Firma Sun Microsystems um 1995 angeboten und bis heute weiterentwickelt. Mit Java kann man Anwendungen von diversem Umfang und Größe programmieren.

Was bedeutet projektorientierte Programmiersprache?
Bei Java wird die Programmierung über Klassen und Projekte vorgenommen. Diese können durch Methoden verändert werden.

Das besondere von Java ist die Plattformunabhängigkeit. Das heißt, dass Java als Ergebnis einer Programmierung einen interpretierbaren Bytecode erzeugt. Dieser Code wird über den Java Runtime Environment eingelesen und ausführbar gemacht.  Das Betriebssystem ist total egal, so lange Java Runtime Environment vorhanden ist.

Wichtig: Die Programmiersprache ist nicht gleich der Skriptsprache JavaScript. JavaScript benutzt ähnliche Befehle wie Java, aber der Befehlsumfang ist viel geringer.

Und für wen ist jetzt diese App?

imgIch habe diese App für meine 9er Informatikkurse geschaffen.
Einige werden nun denken "Wie 9er? Das ist doch Stoff für die Oberstufe" oder ähnliches. Da haben Sie wohl auch recht, aber das Feedback meiner Schülerinnen und Schüler, die zu anderen Schulen gehen und mir berichten, dass sie sehr gut dort im Informatikunterricht zurecht kommen, stärkt meinen Kurs den Schülerinnen und Schülern Java näher zu bringen.
Meine Schüler haben alle ihr eigenes mobiles Gerät (BYOD) und können somit parallel zu Lern-PDFs auch diese App nutzen. Gleichzeitig programmieren sie mit! Da ich somit mehrere Reize anspreche, erlebe ich Schülerinnen und Schüler, die sich sehr motiviert und auch erfolgreich an Java trauen.
Versuchen Sie es doch auch einfach!

©2013 • ad hauk

Einführung BlueJ

kurze Einführung in BlueJ

An der WBRSX benutzen wir BlueJ als Entwicklungsumgebung. Privat nutze ich lieber das Programm eclipse, aber für den Schulbereich scheint mir BlueJ als nicht ganz so komplexe Entwicklungsumgebung am geeigneten zu sein.

photo
www.bluej.org

In BlueJ steht neben dem verkürzten Klassendiagramm ein Texteditor mit Syntaxhervorhebung und Autovervollständigung zur Verfügung. Somit können die Schülerinnen und Schüler sofort sehen, welche Befehle sich wo auswirken und die, für die Schüler schwierige Klammersetzung wird vereinfacht.

Installation von BlueJ

BlueJ kann man für Windows, Mac OS X, Solaris und Linux KOSTENLOS herunterladen und auf seinen Rechner installieren. Damit BlueJ auch funktioniert, benötigen Sie zu dem noch eine aktuelle "Java Virtual Machine" und ein aktuelles JDK.

Umstellung ins Deutsche

Nach der Installation wird BlueJ in englischer Sprache ausgeführt. Wen es stört, kann dies mit wenigen Handgriffen ändern. Im Ordner BlueJ (bei den meisten PCs unter C:/Programme) gibt es einen Ordner, der heißt lib. Dort öffnen Sie die Datei bluej.defs mit einem Editor und ändern die Zeile bluej.language=english in bluej.language=german.

 

©2013 • ad hauk

hello world

hello world - das erste Programm

Wie in fast jedem Javakurs möchte ich nicht die Tradition brechen und bleibe beim ersten Programm, dass hello world ausgibt.

Dabei werdet Ihr automatisch den Umgang mit BlueJ so wie das Grundgerüst eines Java-Programmes kennenlernen.

Youtube-Link

Hier ist nun eurer erster Code:

Was habt Ihr nun genau programmiert?

class HelloWorld
= Hauptklasse mit dem Namen HelloWorld

public static void main(String[] args)
= für alle verfügbar (public) immer verfügbar und unverändebar (static) ohne Rückgabewert (void) Parameter, Variable (String[] args)

System.out.println("...")
= Anweisung an die Klasse (System.out), die Methode println() ("print line") auszuführen, also eine Zeichenkette anzuzeigen

kurze bildliche Zusammenfassung:

WICHTIG: Achtet immer auf die richtige Schreibweise! Wörter, die bis auf die Groß- und Kleinschreibung identisch sind, haben bei Java eine unterschiedliche Bedeutung!

A U F G A B E N:
1. Versucht das Video oben nach zu machen!
2. Was macht BlueJ, wenn Ihr eine Klammer oder Semikolon vergesst?
3. Versuche selber Texte zu schreiben, die BlueJ anzeigen soll!

©2013 • ad hauk

Variablen & Operatoren in Java

Variablen & Operatoren in Java

Herzlichen Glückwunsch - Ihr könnt Euch jetzt Anfängerprogrammierer nennen und gehört nun zu einigen Ausgewählten, die sich ebenfalls an Java herantrauten. Bleib am Ball!

Was sind Variablen

Variablen bezeichnen Werte, die sich während des Programmablaufs ändern.

Am Anfang werden wir uns mit den Variablen: String, integer, double und boolean begnügen, aber es gibt noch einige mehr!

Youtube-Link

Auch diesen Code wollen wir uns ganz detailiert angucken, damit es einigermaßen übersichtlich bleibt, teile ich den Quelltext.

Was habt Ihr nun genau programmiert?

Wenn bei der Zusammenfassung etwas nicht erklärt wird, haben wir das schon vorher besprochen.

int zahl=5; (int zahl_zwei=2;)
= Integer (int) mit dem Namen zahl wird auf die Ganzzahl 5 gesetzt

double zahl_drei=5; (double zahl_vier=2;)
= Double mit dem Namen zahl_drei wird auf die Zahl 5,00 gesetzt

int erg_eins=zahl/zahl_zwei;
= Integer (int) mit dem Namen erg_eins (Ergenbis eins) errechnet die Ganzzahl 5 durch die Ganzzahl 2. Ergebnis ist bei Integer 2, da ja Ganzzahlen berechnet wurden

double erg_zwei=zahl/zahl_zwei;
= Double mit dem Namen erg_zwei errechnet die Ganzzahl 5 durch die Ganzzahl 2. Ergebnis ist bei Double 2.0, denn zahl und zahl_zwei sind ja Integer (Ganzzahlen). Double (Kommazahlen) bezieht sich dann aufs Ergebnis, also 2,0

double erg_drei=zahl_drei/zahl_vier;
= Double mit dem Namen erg_drei errechnet die Kommazahl 5,0 MINUS die Kommazahl 2,0. Ergebnis lautet 3,0

// da zahl, wie auch .....
= Kommentare, die nicht ausgeführt werden, aber jedem Betrachter des Quelltextes eine Erklärung bringen

String hallo="Hallo, hier versuche ich euch....";
= Definierung der Zeichenkette (String) hallo

System.out.println(in + doub);
= Zeige eine Zusammensetzung von String in und String doub

System.out.println("Rechnung 1:" + erg_eins);
= Zeige "Rechnung 1:" an zzgl. dem Ergebnis eins.

Was sind Operatoren?

Es gibt unter anderem aritmetische Operatoren für mathematische Berechnungen und Vergleichsoperatoren, wie auch logische Operatoren. Diese werden wir uns sofort auch genauer ansehen, aber Euch sollte bewusst sein, dass es noch mehr Operatorenarten existieren.

Was sind nun Operatoren? Das erklären am Besten die folgenden Tabellen.

arithmetische Operatoren:
diese Operatoren werden für mathematische Berechnungen benutzt

Operator Funktion
+
Verleiht einer Variable ein positives Vorzeichen
-
Verleiht einer Variable ein negatives Vorzeichen
   
+
führt eine Addition durch
-
führt eine Subtraktion durch
*
führt eine Multiplikation durch
/
führt eine Division durch
%
(Modulo) führt eine Division durch, wobei der Restwert geliefert wird.

Vergleichsoperatoren:
vergleichen von Ausdrücken miteinander und liefert ein boolesches Ergebnis (WAHR oder FALSCH)

Operator Funktion
==
testet zwei Variablen auf Gleichheit
!=
testet zwei Variablen auf Ungleichheit
   
<
prüft, ob der linke Operand kleiner ist
>
prüft, ob der linke Operand größer ist
<=
prüft, ob der rechte Operand größer oder gleich ist
>=
prüft, ob der rechte Operand kleiner oder gleich ist

logische Operatoren:
vergleichen von boolesche Werten! Im Gegensatz zu Vergleichsoperatoren werden nun die entsprechende Ergebnisse weiterverarbeitet.

Operator Funktion
!
NICHT
&&
UND
&
UND
II
ODER
I
ODER
^
ODER (exklusiv)

Einige Operatoren habt ihr schon genutzt, andere werden wir in dem nächsten Programmn noch anwenden.

A U F G A B E N:
1. Versucht das Video oben nach zu programmieren!
2. Erstelle ein eigenes Programm, das die unterschiedlichen Variablen erklärt!
3. Welche Operatoren haben wir schon benutzt?

©2013 • ad hauk

Bedingungen in Java

Was sind Bedingungen?

Wir Java Programmierer, also auch ihr jetzt ;-), nennen Bedingungen auch IF-Anweisungen.

Diese IF-Anweisungen dienen dazu einen Ausdruck auszuwerten und je nach Ergebnis weiterzuverfahren. Hierbei spielt der Datentyp Boolean eine ganz besondere Rolle, denn der Ausdruck MUSS einen Wert dieses Datentypes haben.

Fast in jedem größeren Programm werdet Ihr demnächst IF-Anweisungen benutzen, da es die einfachste logische Form ist, das Programm dahin zu führen, wo man es haben möchte. Hierbei kann man diese Bedingungen in unterschiedliche Situationen einsetzen.

Da die IF-Anweisung relativ leicht zu verstehen ist, werde ich in dieser Programmierübung noch einige Wiederholungen von den Themen zuvor einbringen, diese werde ich dann in den Kommentaren nochmals darstellen:

Youtube-Link

Hier ist nun der entsprechene Code zum Nachlesen. Damit es einfacher zu erklären ist, habe ich den Quellcode wieder in mehrere Abschnitte geteilt:

Was habt Ihr nun genau programmiert?

int zahl=2; int var=1;
= Integer zahl, wie auch Integer var, also wir wollen die zahl 2, wie auch var 1 prüfen

if (zahl==2)
= es wird überprüft, ob die Integer Variable zahl den Wert 2 besitzt.

System.out.println("wahr")
= Anweisung, wenn die Überprüfung korrekt ist, dann schreibe wahr

else
= Hinweis, was passieren soll, wenn die Bedingung nicht stimmt

System.out.println("unwahr")
= Anweisung, wenn die Überprüfung NICHT korrekt ist, dann schreibe unwahr

Bildlich gesehen, bedeutet das so:

nun zur 2. Bedingung, eine verknpüfte Überprüfung:

Die zweite von Euch programmierte Bedingung entspricht ebenfalls dem oberen Schema.

if ((zahl==2) && (var==1)
= es wird überprüft, ob die Integer Variable zahl den Wert 2 besitzt und zeitgleich Interger Variable var 1 ist.

Man kann also Bedingung verknüpfen! Dies geschieht durch eine UND-Verknüpfung (&&) oder mit einer ODER-Verknüpfung (II)!

eine andere Prüfung lautet:

if (zahl!=2)
= es wird überprüft, ob die Integer Variable zahl NICHT den Wert 2 besitzt

eine andere Prüfung lautet:

if (zahl>2)
= es wird überprüft, ob die Integer Variable zahl GRÖSSER den Wert 2 ist

eine andere Prüfung lautet:

if (zahl<2)
= es wird überprüft, ob die Integer Variable zahl KLEINER Wert 2 ist

Mit if-else Anweisungen kann man seinen Code weiter verzweigen, in dem man Ihr einfach mehrere if-else-Anweisungen nacheinander schreibt.

Bildlich gesehen, bedeutet das so:

WICHTIG:
Die IF-Bedingung darf NICHTS wiederholen. Der Code wird von oben nach unten abgearbeitet. Zu Wiederholungen benutzen wir Schleifen. (Nächstes Kapitel!) Die IF-Anweisungen sind nur dafür da um etwas zu prüfen was ausgeführt werden soll.

A U F G A B E N:
1. Versucht das Video oben nach zu machen!
2. Welche Operatoren habt Ihr kennengelernt?
3. Schreibe ein eigenes kleines Programm, dass anzeigt, wenn die Zimmertemperatur unter 17 Grad ist, bitte Heizung einschalten, wenn die Temperatur über 22 Grad ist, bitte Hezung herunterdrehen!
4. Schreibe ein Programm, dass eine verknüpfte IF-Anweisung beinhaltet!

©2013 • ad hauk

Schleifen

Wie funktionieren Schleifen und was kann man damit machen?

Im letzten Kapitel habt Ihr IF-Anweisungen kennengelernt. Diese Bedingung leitet eine Abfrage ein, also ist etwas Bestimmtes erfüllt oder nicht. Wenn die Bedingung erfüllt ist, wird der nächste Befehl bzw. Befehle ausgeführt. Natürlich kann auch else verwendet werden.

Eine Schleife wird durch das Wort while eingeleitet. Ähnlich wie bei der IF-Bedingung wird überprüft, ob eine Bedingung erfüllt wird oder nicht

ABER: Solange die Bedingung FALSCH ist, wird die Schleife immer wieder wiederholt bzw. umgekehrt!!!

Allgemein gesehen, bedeutet das so:

Wir schauen uns mal eine kleine Schleife an! Hier benutze ich eine for-Schleife. Dies ist eine spezialisierte while-Schleife, die überwiegend beim Zählen verwendet wird.

Youtube-Link

Wie gehabt, sehen wir uns diesen Code auch kurz an:

Was habt Ihr nun genau programmiert?

for (int i=0;i<=10; i=i+1)
= Integer i, wird auf 0 gesetzt, danach kommt der Wert, wie lange die Schleife durchlaufen werden soll. Hier bis einschliesslich 10. Zuletzt kommt der Befehl, dass i immer mit 1 erhöht wird.

Allgemein gesehen, bedeutet das so:

Ein weiteres Beispiel hierfür wäre:

A U F G A B E N:
1. Was passiert bei dem zweiten Programm?
2. Wie lautet die Ausgabe bei dem zweiten Programm?
3. Erstelle eine Vorschleife, die die 8er Reihe darstellt, also das kleine 1X8
4. Erstelle einen Countdown vom 100 Abwärts!

Nun kennt ihr die for-Schleife, also die sogenannte Zählschleife. Aber es gibt noch unter anderen die:

while-Schleife (Abweisschleife)
do-while-Schleife (Durchlaufschleife)

Alle drei Varianten lassen sich jeweils durch eine andere beiden ersetzen.
DOCH jeder Schleifentyp beschreibt bestimmte Algorithmen am besten!!

sehen wir uns mal Beispiele dazu an:

die while-Schleife
(Abweisschleife)

Die while-Schleife ist eine Abweisschleife!
Die Bedingung kann auf ZWEI verschiedenen Wegen verlassen werden
(Bedingung ist wahr oder falsch)
Ist die Bedingung schon bei der ersten Auswertung nicht erfüllt, wird der Schleifenkörper überhaupt nicht ausgeführt
(abweisende Schleife)


Vielleicht hilft euch folgende Skizze, dies noch besser zu verstehen:

die do-while-Schleife
(Durchlaufschleife)

Die do-while-Schleife ist eine Durchlaufschleife!
Die Bedingung kann auf ZWEI verschiedenen Wegen verlassen werden
(Bedingung ist wahr oder falsch)
Der Schleifenkörper wird mindestens einmal ausgeführt
(annehmende Schleife)


Vielleicht hilft wiederum folgende Skizze, dies noch besser zu verstehen:

Nun wieder zur Praxis!

A U F G A B E N:
5. Versucht die Beispiele der do-while und der while Schleife zu komplettieren und unter BlueJ zum laufen zu bekommen?
6. Was passiert beim folgenden Programm und WARUM?

String s = "hallo";
for (int i = 0; i < s.length(); i++)
{
System.out.println(s.charAt(i));}

7. Denk dir eine while, eine do-while und eine for-Schleife aus, oder gleich ein paar mehr.
8. Schreibe mehrere Programme dazu, vielleicht schaffst du ja auch nur ein Programm, wo alle Schleifen sinnvoll kombiniert vorkommen.

 

©2013 • ad hauk

Arbeiten mit Eingaben

Unsere erste Interaktion!

Wir sind nun so weit, dass wir mehr mit unseren Programen anfangen können. Jetzt wollt Ihr bestimmt auch mit dem User am PC zusammen was machen. Zum Beispiel muss der User etwas eingeben und euer Programm reagiert auf diese Eingabe!

Mehrere Möglichkeiten:

Java bietet uns hierfür mehrere Möglichkeiten an. Ich werde Euch erstmal zwei Möglichkeiten vorstellen, damit Ihr auch mit Interaktionen programmieren könnt

Eingaben mit der Klasse Scanner

Als erstes werdet Ihr feststellen, dass es unter Java fertige Klassen und Funktionalitäten existieren. Diese kann man am Anfang einfach importieren und ihr könnt diese Funktionen dann anwenden.

Wie gehabt, sehen wir uns diesen Code auch kurz an:

Wenn bei Euch nicht folgende Ausgabe kommt, solltet ihr nachsehen, ob ihr das ein aktuelles JDK installiert habt. Denn ab JDK 5.0 ist erst die Klasse Scanner vorhanden!

Was habt Ihr nun genau programmiert?

import java.util.Scanner;
= importiere die vorgegebene Klasse Scanner, Fachbegriff hierfür lautet Package-Import
(Wenn ihr import java.util.*; anwendet, werden alle bekannten Pakete importiert)

Scanner eingabe = new Scanner(System.in);
= Die Variable eingabe wird gesetzt, nämlich auf die kommende Eingabe (System.in)
(System.in ist ein inputStream, dass heißt die Eingabe wird ins Programm geschrieben.)

double zahl1 = eingabe.nextDouble ();
= wie stellen ersteinmal fest, das zahl1 eine Kommazahl sein muss und das die Variable aus der Ausgabe gelesen wird (eingabe.nextDouble ())

double durchschnitt = (zahl1 + zahl2 + zahl3) /3;
= Die DOUBLE Variable durchschnitt errechnet sich aus der Sume von zahl1 - zahl3 geteilt durch 3

A U F G A B E N:
1. Was macht BlueJ, wenn ihr anstatt Zahlen einen Text eingebt?
2. Erstelle ein kurzes Quiz, das nur mit der richtigen Antwort zur nächsten Frage weitergeht, ob ihr Scanner oder Schleifen anwendet ist erst einmal egal!
3. Schreibe ein Programm, dass wie ein Spiegel agiert. Das heißt, dass das eingegebene Wort rückwärts wieder ausgegeben wird!

©2013 • ad hauk

Listen, im engl. Array

Was kann man mit Listen (Arrays) machen?

Bevor wir uns ansehen, wie man Arrays anwenden kann, sehen wir uns mal Tabellen an:

Das ist eine 1-dimensionale Liste - also eine Zeile

Das ist eine 2-dimensionale Liste - also bestehend
aus Spalten und Zeilen

Jetzt wisst Ihr, was ein und zwei dimensionale Listen sind. Es gibt aber auch 3-Dimensionale und 4 Dimensionale Listen, usw..

3-Dimensionale Listen sind zum Beispiel Bücher, die bestehend aus vielen 2 Dimensionalen Listen bestehen. Somit wäre eine Bücherregal mit vielen Büchern dem 4 Dimensionalen Listen ähnlich. Viele Regale wären dann eine Dimension mehr usw... .

Desto mehr Dimensionen ich benutze, desto mehr Speicherplatz benötigt Euer Programm!


Wie benutze man nun ein Array?

Ein Array hat ein Variabletyp, in unserem Beispiel String und den Namen der Variable. Und den Rest sehen wir uns wie immer im Video an! Ich werde diesmal wieder einige Kommentare hinzufügen, damit dieses Thema verständlicher wird.



Was habt ihr nun programmiert?

Wie gehabt, gehen wir dieses Programm Schritt für Schritt durch!

String monate[]={"Januar", ..., "Dezember"};
= Variabletyp String mit dem Name monate ist ein array[]. Diese kann man nun beschreiben {}

HINWEIS: Der PC fängt bei 0 an zu zählen! Also Januar=0 und Dezember=11!

System.out.println(monate[11]);
= gebe aus (System.out.println) den Array (monate) und zwar den 11 [11]

System.out.println(monate.length);
= gebe aus (System.out.println) den Array (monate) aus, und zwar wie viele Elemente sich im Array befinden (.length)

HINWEIS: Wenn man direkt ein Element aus dem Array ansprechen möchte, kommt dies in die eckige Klammern [].

A U F G A B E N:
1. Erstelle ein Array mit 5 beliebigen Zahlen und lass dir diese Ausgeben
2. Erstelle ein array mit 5 beliebeigen Strings und lass dir diese Ausgeben
3. Erstelle eine Matrix mit den Zahlen 1 - 6 und lass dir diese Ausgeben (2 Zeilen / 3 Spalten)

©2013 • ad hauk

GUI - graphical user interface

GUI-Programmierung

In diesem Kapitel beschäftigen wir uns mit den Grundlagen der Oberflächenprogrammierung. Die grafische Benutzeroberfläche wird auch als Graphical User Interface, kurz GUI, bezeichnet. Es gibt einige Tools oder auch Entwicklungsumgebungen, mit denen man die Oberflächen per Drag and Drop erstellen kann. Eine unserer Meinung nach empfehlenswertesten Entwicklungsumgebungen für die GUI ist NetBeans. Es ist dort sehr angenehm und einfach sich seine Oberfläche zusammen zu klicken, jedoch fehlen manchem Entwickler die Grundlagen, wie eine Oberfläche sich überhaupt zusammensetzt und wie man sie auch von "Hand" erzeugt. Diese Grundlagen wollen wir Ihnen hier vermitteln. In Java gibt es zwei Bibliotheken für die GUI-Programmelemente. Das mitterweile veraltete Abstract Windowing Toolkit, auch kurz AWT genannt, und die Swing-Bibliotheken. Auf die veralteten Bedienelemente des AWT's werden wir in diesem Tutorial nicht zu sprechen kommen. Wir geben in den folgenden Unterkapiteln eine Übersicht über die Bedienelemente, den Aufbau einer grafischen Benutzeroberfläche, mögliche Designs (Layouts) und die Interaktion mit der Oberfläche (Eventhandling).

©2013 • ad hauk

GUI - Programmierung mit Swing

GUI-Programmierung mit Swing

Swing ist ein Bestandteil der Java Foundation Classes (JFC), mit denen grafische Benutzeroberflächen (GUIs) erstellt werden können. Die Swing-Klassen befinden sich in dem Java-Paket javax.swing. Die Swing-Elemente werden wir hier in vier Kategorien unterteilen: In der ersten Hauptkategorie behandeln wir die Fenster und Dialoge. Diese enthalten alle anderen Elemente und stellen das Grundgerüst für die grafische Benutzeroberfläche dar. In der zweiten Kategorie lernen Sie die Menüs kennen. Menüs dienen der Programmsteuerung. Über Menüs können beliebige Funktionalitäten mit weiteren Dialogen ausgewählt werden. Neben den Menüs zur Fenster- und Dialogsteuerung gibt es auch noch die Kontextmenüs, welche je nach Oberfläche auch unterschiedliche Funktionalitäten bereitstellen. Container bilden die dritte Kategorie. Sie dienen dazu, die eigentlichen Bedienelemente (z.B. Schaltflächen und Textfelder), welche unsere vierte Kategorie darstellen, zu strukturieren und gruppieren. Zur Veranschaulichung haben wir jeder Kategorie ein eigenes Oberkapitel gewidmet. In den enstprechenden Kapiteln werden wir auf die einzelnen Klassen und deren Verwendung eingehen. Dazu stellen wir auch anschauliche Beispiele zur Verfügung, mit denen Sie direkt testen und experimentieren können.

©2013 • ad hauk

GUI - Fenster & Dialog

Fenster und Dialog

In diesem Kapitel wollen wir eine kleine Übersicht über Fenster- und Dialogklassen geben. Diese Klassen sind für eine Anwendung mit Benutzeroberfläche unerlässlich. Insbesondere die Java-Klassen JFrame und JDialog bilden das Grundgerüst einer jeden Anwendung. Zu den Fenster- und Dialogklassen zählen:

Klasse
Kurzbeschreibung
JFrame Dieses Hauptfenster bildet die Grundlage der meisten GUIs. Es zeichnet sich durch eine Menüleiste aus.
JDialog Ein Dialogfenster, das in der Regel nur einfache und nur wenige Bedienelemente besitzt und über keine Menüleiste verfügt. Es ist immer abhängig von einem anderen Fenster.
JColorChooser Ein Dialog, über das aus einer Farbpalette eine Farbe ausgewählt werden kann, wie man es aus Grafikprogrammen kennt. Dieser kann in einen JDialog oder JFrame integriert werden.
JFileChooser Mit dem JFileChooser können Dateien ausgewählt werden. Dieser wird daher meistens eingesetzt, um Dateien zu öffnen oder zu speichern.
JOptionPane Das JOptionPane ist wahrscheinlich einer der bekanntesten Dialoge. Es wird oft für Fehlermeldungen oder Benutzerbestätigungen verwendet ( z.B. "Wollen Sie wirklich löschen?")

JFRAME

JFrame ist das Standard-Fenster für die grafische Oberflächenprogrammierung mit Swing. Es nimmt alle anderen Container und Bedienelemente auf und vereint es zu einer Oberfläche. Ein Frame hat folgenden Aufbau:

Die hinterste Ebene soll den gesamten Frame darstellen, der sich aus den darüberliegenden Schichten zusammensetzt. Die Basis bildet der RootPane. Dieser stellt, wie der Name bereits impliziert (engl. root = Wurzel), den Anfang eines Frames und der dazugehörigen Container-Hierarchie dar. Der RootPane enthält den sogenannten LayeredPane (von engl. layer = Ebene). Die Kinder eines LayeredPanes sind einer Ebene zugeordnet, die sich auch je nach Verwendung verschieben kann. Ein LayeredPane wiederum besitzt einen sogenannten ContentPane (von engl. content = Inhalt), welcher die eigentlichen Bedienelemente enthält, sowie eine Menüleiste (JMenuBar). Die Menüleiste ist jedoch optional. Die oberste Schicht ist der sogenannte GlassPane. Dieser liegt, wie eine durchsichtige Scheibe, direkt über dem ContentPane. Alle Panes zusammen bilden den Frame. In der Regel wird nur auf den ContentPane, dessen Bedienelemente und seine optional vorhandene Menüleiste zugegriffen. Schauen wir uns nun einmal ein Beispiel an, wie man einen einfachen Frame erstellen kann:

Wir erzeugen ein JFrame-Objekt mit dem new-Operator und übergeben dem Konstruktor unseren Titel. Anschließend setzen wir die Breite und die Höhe auf jeweils 200 Pixel mit der Methode setSize. Zum Schluss lassen wir uns über die Methode setVisible den Frame anzeigen. Nach dem Ausführen des obigen Quelltextes sollten Sie folgendes Bild angezeigt bekommen:

Wir haben nun zwar ein Fenster erstellt, aber wir wissen noch nicht, wie wir dieses auch mit Elementen füllen können. Wir wollen Ihnen hier an einem sehr einfachen Beispiel demonstrieren, wie man Elemente ohne großen Aufwand und ohne ein besonderes Layout hinzufügen kann: Die Methode add fügt neue Komponenten unserem Frame hinzu. Wir erweitern nun das obige Beispiel:

Nun enthält unser Beispiel-Fenster eine JLabel-Komponente (Beschriftung). Wie Sie sehen, haben wir hier nur eine import-Anweisung für unser JLabel hinzugefügt und die Methode add aufgerufen, der wir als Parameter ein Objekt der Klasse JLabel übergeben haben. Dem Konstruktur der Klasse JLabel haben wir dabei den gewünschten Text für die JLabel-Komponente übergeben. Beim Ausführen des veränderten Quellcodes erhalten wir nun folgendes Bild:

Über die Methode add können auf diese Weise beliebige Bedienelemente unserer Oberfläche hinzugefügt werden. Wir werden in den späteren Kapiteln der Bedienelemente jeweils zeigen, wie das jeweilige Bedienelement funktioniert und einem Frame hinzugefügt werden kann. Außerdem werden Sie später erfahren, wie Sie Einfluss auf die Positionierung der Elemente über sogenannte Layouts nehmen.

©2013 • ad hauk