Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Jetzt lerne ich Java 6

JCheckBox

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Mit Checkboxen kann der Benutzer zwischen mehreren vorgegebenen Optionen wählen. Wie Sie diese GUI-Komponente einsetzen und ihren Wert auslesen, erfahren Sie hier.
15:36

Transkript

Wir wollen uns noch eine weitere Swing Komponente anschauen, die wir bereits aus AWT kennen, und zwar die Checkbox. Anders als im AWT, bei dem die Checkbox und die Radiobox eigentlich das Gleiche sind, nur dass die einen eben als Gruppe angelegt sind und die anderen einzeln, gibt es in Swing schon eine Unterscheidung zwischen Checkbox und Radiobox. Hier in diesem Lektion beschäftigen wir uns wirklich mit der Checkbox in Swing. Ich möchte gerne in diesem Beispiel ein Fenster, das ich hier schon mal als Grundstruktur wieder angelegt habe, ist eigentlich immer das Gleiche, aufgeteilt haben in zwei Zeilen. Das schreit wieder nach einem Gridlayout: 2 Zeilen, eine Spalte, oben hätte ich gerne ein Label und unten hätte ich gern 2 Checkboxen. Je nachdem, ob ich eine oder die andere oder beide anwähle, soll sich hier oben der Text entsprechend ändern. Dabei können wir ganz gut sehen, wie wir mit Checkboxen arbeiten. Im ersten Schritt sollten wir zuerst hier oben als Instanzvariable anlegen, was wir so brauchen, also Private hat draußen nichts verloren, wir brauchen Checkboxen, die leiten sich von JCheckbox ab, und hier ist es also schön zu sehen, dass die Benamung in Swing jetzt wirklich durchgehend ist. In Swing ist es wirklich so, dass jeder neue Wortstamm auch mit einem Großbuchstaben weitergeführt wird und in AWT hieß die Checkbox ja noch Checkbox nur mit großem C, aber dann einem kleinen b. Hier ist also konsequenter die Benamung auch eingehalten worden. Nehmen wir also eine JCheckBox und zwar Check 1 und Check 2. Damit sind die bekannt und die Checkboxen an sich kommen gleich in ein eigenes Panel, dafür nehmen wir natürlich, da wir uns in Swing befinden, ein JPanel. Ja, wie gesagt die Checkboxen kommen in ein eigenes Panel und das Label an sich können wir auch in ein eigenes Panel packen, also wir brauchen JPanels und zwar ein labelPanel und ein checkBoxenPanel. Ok, damit sind die jetzt also auch bekannt, da brauchen wir noch ein Label, ein eigenes, also private Jlabel, das nennen wir einfach schlicht Label. Nachdem wir also jetzt hier unsere Deklaration hinter uns gebracht haben, Sie sehen, hier habe ich mir schon die ContentPane geholt un setLayout, einen Layout-Manager, Gridlayout entsprechend angelegt. Dafür müssen Sie hier oben natürlich AWT, das Paket importieren. Dann können wir jetzt anfangen, uns um das Labelpanel zuerst mal zu kümmern. Label, jetzt können wir uns darum kümmern, hier ein Labelpanel anzulegen. Dafür nehmen wir uns unsere deklarierte Variable und instanzieren eine neues Panel und anschließend brauchen wir ein Label, Label. Und damit wir am Anfang direkt schon was drin stehen haben, machen wir "Tue was!", und lassen das mittig ausrichten, dann bringt uns das JLabel auch direkt schon passend eine vordefinierte Konstante CENTER mit. Gut, nachdem wir die beiden Elemente unabhängig voneinander haben, müssen wir dieses Label in dieses LabelPanel hineinpacken, dafür sagen wir jetzt Labelpanel.add und packen das Label jetzt einfach fröhlich da hinein. Jetzt können wir uns also um unser CheckBoxen Panel kümmern. Holen wir uns also eine neue Instanz von JPanel und anschließend legen wir unsere beiden Checkboxen an. Das ist Check 1, das nenne ich "new JCheckBox", und interessant ist es jetzt, natürlich sich wieder die passenden Konstruktoren anzuschauen. Auch hier wieder ein Blick in die Doku. Ich hole mir jetzt also hier den Überblick, gehe nach Javax.Swing und suche jetzt die JCheckBox und entsprechend scrolle ich durch bis ich die Konstruktoren finde. Auch hier wieder die Möglichkeit, Icons zu vergeben und was uns interessiert ist dieser Konstruktor hier. Wir wollen uns erst einmal einen Text angeben und gleichzeitig wollen wir sofort noch auswählen, dass das Ding abgewählt ist. Das heißt hier finden wir den passenden Konstruktor dazu. Den wenden wir auch direkt an, das heißt zuerst mal im Text, wir hätten gerne den Text DVD da stehen und danach wird ein Boolescher Wert verlangt: false, das heißt das Ganze ist abgewählt. Genauso verfahren wir jetzt auch für die zweite Checkbox. Nennen wir das Ganze "CDROM" und auch diese wählen wir direkt über "false" an. Gut, nachdem wir die Checkboxen haben, können wir diese unserem Panel hier hinzufügen. Kopiere ich mir einfach den Namen, das geht schneller und verwende entsprechend die Methode add um zuerst Check 1 hinzuzufügen. Machen wir das ein bisschen schöner. Und das Ganze benutzen wir direkt nochmal und fügen dann noch Checkbox 2 hinzu. Jetzt haben wir 2 Panels und diese müssen natürlich zusammengefasst werden und in die Contentpane gebracht werden. Hierfür holen wir uns die mit "this.getContentPane" und dann könne wir "add" nutzen und entsprechend unser Assist-Panel angeben, das oben hin soll. Das ist unser LabelPanel. Und darunter wollen wir unser checkBoxenPanel haben. So, und wenn wir uns hier jetzt nicht größer verhauen haben, dann sollten wir das Ganze testen und sollten schon mal unsere grafische Oberfläche fertig haben. Voilà, das sieht doch schon ganz gut aus, Sie sehen, auch hier funktioniert es schon von der Sache her, was wir jetzt natürlich noch brauchen, ist, dass wir darauf reagieren, wenn jemand hier was anhakt. Hierfür brauchen wir wieder das Ihnen bereits bekannte Konzept, der Eventlistener. Und in Anbetracht dessen brauchen wir hier jetzt auch wieder das passende Paket. Import jawa.awt.event und wir setzen hier als innere Klasse dann unseren Listener. Hier machen wir wieder einen allgemeinen Listener: class BoxenEreignisse implements Es ist halt wieder die Frage, was nehmen wir? Und bei solchen Sachen eignet sich ganz gut der Itemlistener, das ist ein Interface. Und Sie finden den Itemlistener, falls Sie da nachschauen wollen, unter Java AWT-Event Itemlistener. Hier steht, dass es um Itemevents geht. Sie sehen auch, welche Klassen das Ganze auslösen. Und da es sich nur um eine einzige Methode handelt, ItemStateChanged, also jemand hat einfach den Status gewechselt dieses Elementes, braucht man natürlich auch keine Adapterklasse. Aber diese Methode müssen wir entsprechend implementieren, es kommt ein Item-Event herüber, aus dem wir uns dann die passenden Informationen ziehen. Das heißt wir machen jetzt hier weiter, indem wir diese Methode implementieren. ItemStateChanged und es kommt dann Item-Event an. Das erste, was wir machen, ist einfach mal auf der Konsole uns zur Kontrolle das Ganze ausgeben. Okay, damit haben wir jetzt unseren Itemlistener mit dem Namen Boxenereignisse und diesen müssen wir natürlich wieder zuweisen. Den weisen wir den einzelnen Checkboxen zu. Machen wir vielleich am besten hier einen eigenen Bereich. Und jetzt brauchen wir natürlich auch die passende Methode und die muss eben zum Interface korrekt passen und daher heißt diese entsprechend addItemListener. Davon brauchen wir einen neuen, also new BoxenEreignisse. Also das gleiche Prinzip wie beim AWT, denn es ist AWT. Trotzdem wir Swing-Applikation haben. Gut, wir haben das Ganze jetzt zugewiesen, testen wir das Ganze. Und dafür braucht man noch eine Konsole und immer, wenn ich jetzt hier klicke kommt entsprechend jetzt eine Nachricht, das heißt wir fangen dieses Ereignis auf. Jetzt können wir natürlich dann entsprechend reagieren, indem wir hier oben in das Label den entsprechenden Reaktionstext setzen. wir können das natürlich jetzt wieder als Funktion auslagern, aber da wir das BoxenEreignis nur hier brauchen, setzen wir es einfach hier rein. Zuerst einmal brauchen wir einen String, den wir Ausgabe nennen. Der st am Anfang leer, warum sehen Sie gleich noch. Und dann müssen wir herausfinden, welche Box wurde eigentlich gewählt? Also wenn Check1... und das ist einfach jetzt extrem angenehm. Wir können nämlich jetzt auf die Checkboxen zugreifen. Das ist jetzt natürlich super angenehm, wir können mit der passenden Methode eine Eigenschaft auslesen. und da die Eigenschaft entweder true oder false sein kann, heißt die Eigenschaft "is", also in unserem Fall "isSelected". Damit können wir also ganz schnell feststellen, ob unsere Checkbox Im Moment angewählt ist. Und wenn ja, dann möchten wir gerne, dass unsere Ausgabe ergänzt wird, da nutzen wir die kurze Schreibweise, falls Ihnen das unbekannt ist: += mit dem Grundlagenteil nochmal schauen. DVD ist gewählt. Und da ja auch beide Boxen angewählt sein können, schreiben wir das entsprechend auch hier noch rein, dann ist das CDROM gewählt und das war es schon. Wenn also jetzt nur eines gewählt ist, dann steht in der Ausgabe "DVD ist gewählt" drin und wird ausgegeben und zentriert. Wenn das Andere gewählt ist: Dito, das Gleiche. Und wenn beides gewählt ist, steht beides hintereinander. Das heißt wir müssten für alle Fälle jetzt die passende Ausgabe haben. Schauen wir uns das Ganze an. Im Moment steht da "Tue was!", wir wählen DVD, es tut noch nichts. CDROM tut auch noch nichts. Warum? Es ist noch nicht zugewiesen. Wir haben zwar unsere Ausgabe generiert, aber die sind nicht zugewiesen. Deshalb müssen wir dem Label hier oben das Ganze zuweisen. Also schauen wir nach, wie unser Label heißt. Das heißt einfach Label, das ist einfach. Label.setText Und jetzt werfen wir einfach unsere Ausgabe hier hinein. Und dann sollten wir das passende Ergebnis bekommen. Sie sehen also, wir haben jetzt für alle Fälle eine passende Ausgabe.

Jetzt lerne ich Java 6

Steigen Sie ein in die Programmierung mit Java 6, lernen Sie die Grundlagen kennen und unternehmen Sie anschließend Ihre ersten Schritte in der objektorientierten Programmierung.

12 Std. 27 min (98 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!