Literatur

JCheckBox

Eine JCheckBox wird häufig zum Aktivieren/Deaktivieren bestimmter Funktionalitäten in einer Anwendung verwendet. Die Klasse JCheckBox ist von der Klasse JToggleButton abgeleitet.

Neben dem Standardkonstruktor besitzt die Klasse JCheckBox einige weitere Konstruktoren, die wir in folgender Tabelle kurz näher erläutern wollen:

Konstruktor Kurzbeschreibung
JCheckBox (Action a) Hier wird einer JCheckBox direkt eine Aktion zugewiesen. 
JCheckBox (Icon icon) Dieser Konstruktor erstellt ein JCheckBox-Objekt mit einem Icon.
JCheckBox (String text) Hier wird ein JCheckBox mit einem Text als Beschriftung erzeugt.
JCheckBox (String text, Icon icon) Mit Hilfe dieses Konstruktors kann sowohl ein Text als auch ein Icon einem JCheckBox-Objekt direkt zugewiesen werden. Der Text folgt hier an zweiter Stelle hinter dem Icon.
JCheckBox (Icon icon, boolean selected) Dieser Konstruktor erstellt eine JCheckBox  mit einem Icon.  Zusätzlich wird angegeben, welchen Status die Schaltfläche besitzen soll. Wird der Wert true als zweiter Parameter übergeben, so ist die Checkbox selektiert, das Kästchen enthält also ein Häkchen oder ein Kreuz.
JCheckBox (String text, boolean selected) Hier wird eine JCheckBox mit einem Text als Beschriftung erzeugt. Zusätzlich wird angegeben, welchen Status die Checkbox anfangs besitzen soll.
JCheckBox (String text, Icon icon, boolean selected) Hier werden über den Konstruktor der Beschriftungstext, das Icon und der Status gesetzt.

Nachfolgend ein Beispiel, wie eine JCheckBox implementiert wird:

 
import java.awt.Color;
import javax.swing.*;
 
public class JCheckBoxBeispiel
{
    public static void main(String[] args)
    {
        JFrame meinJFrame = new JFrame();
        meinJFrame.setSize(450,300);
        meinJFrame.setTitle("JCheckBox Beispiel");
 
        JPanel panel = new JPanel();
        panel.setBackground(Color.YELLOW);
        JLabel label = new JLabel("Ich möchte meinen Kaffee mit...");
 
        panel.add(label);
 
 
        //JCheckBoxen werden erstellt
        JCheckBox checkBoxMilch = new JCheckBox("Milch");
        JCheckBox checkBoxZucker = new JCheckBox("Zucker");
 
        //JCheckBoxen werden Panel hinzugefügt
        panel.add(checkBoxMilch);
        panel.add(checkBoxZucker);
 
        meinJFrame.add(panel);
 
        meinJFrame.setVisible(true);
    }
}

Wir haben beim Erstellen der Auswahlkästchen direkt die Beschriftung vorgegeben. Da beide standardmäßig auf false gesetzt wurden, enthalten sie zunächst kein Kreuz. Die Ausführung des Codes ergibt dann folgendes Bild:

JCheckBox Beispiel

 

Wie Sie an dem obigen Screenshot sehen, ist das tatsächliche JCheckBox-Element etwas größer und hat einen eigenen Hintergrund. Wenn Sie möchten, dass die JCheckBox sich nicht, wie in diesem Beispiel, vom Hintergrund abhebt, müssen Sie die Hintergrundfarbe Ihrer Checkbox entsprechend anpassen.

Die Klasse JCheckBox besitzt neben den geerbten Methoden nur wenige eigene Methoden. Für die Darstellung interessant ist die Methode

 
setBorderPaintedFlat(boolean b) 
 

Damit kann eingestellt werden, ob die Umrandung des Auswahlkästchens flach oder dreidimensional dargestellt werden soll. Wenn JCheckBoxen als Renderer z.B. für Zellen einer JTable eingesetzt werden sollen, wird die Eigenschaft borderPaintedFlat üblicherweise auf true gestellt. Möchte man dort auch die 3D Border, kann man diese über setBorderPaintedFlat (false) wieder setzen . Inwiefern der Effekt sichtbar ist, hängt allerdings von dem eingestellten Look and Feel ab. Beim Java Look and Feel sieht man keine Veränderung zwischen flacher und dreidimensionaler Border.

Um zu erfahren, ob ein Kästchen ausgewählt wurde oder nicht, bedient man sich der geerbten Methode isSelected. Diese gibt entweder true für "ausgewählt" oder false für "nicht ausgewählt" zurück.