> Inhalt: JavaScout Base-System (JSBS)

JSBS_Dividerline – Ein GUI-Element (dünne horizontale Linie) zur Trennung verschiedener Bereiche

* Bitte beachten Sie die Hinweise und Bestimmungen bezüglich Urheberrecht, Haftungsausschluß und geschützte Marken oder Warenzeichen die für dieses Web-Dokument und möglicherweise auch für 'verlinkte' Dokumente gelten.

  • Der Betreiber dieser Web-Site (www.javascout.biz) ist nicht verantwortlich für den Inhalt von Web-Sites, die innerhalb dieses Web-Dokumentes oder anderer Dokumente von www.javascout.biz verlinkt sind.

  • Wenn dieses Web-Dokument oder andere Dokumente dieser Web-Site (www.javascout.biz) Rechte von Ihnen verletzen, oder sie glauben, daß Rechte Anderer (Dritter Personen) dadurch verletzt werden, informieren Sie bitte den Betreiber dieser Web-Site.
    Eine E-Mail können Sie ganz einfach durch anklicken des Symbols oder Textes im Frame rechts oben senden.

Dieses Dokument drucken.

 Letzte Bearbeitung dieses  Dokuments:
2010-09-17

Inhaltsverzeichnis

Übersichtsbeschreibung 
Code 
Erklärungen und Anwendungsbeispiele 
Erstellen eines Objektes dieser Klasse 
Verwandte Dokumentation
 

Übersichtsbeschreibung

Diese Klasse erstellt eine schmale horizontale Linie auf der Benutzeroberfläche (Graphic User Interface / GUI).
Mit dieser horizontalen Linie können verschiedene Bereiche der Benutzeroberfläche optisch getrennt werden und damit eine Zusammengehörigkeit von GUI-Elementen (Texte, Eingabefelder) deutlicher gekennzeichnet werden.

Hier ein Beispiel für die Trennung der Gruppe der Eingabefeldern vom Bereich für die Übersichtsliste:

Weitere Möglichkeiten zur Steuerung finden Sie im Abschnitt Erklärungen und Anwendungsbeispiele.

Code

package js_base.frame;

import
java.awt.*;
import
java.awt.event.*;
import
javax.swing.*;
/**
 *
 * @author kurt[at]javascout(dot)biz
 * @date 2010-09-16
 *
 * @description
 *  de:
 *  Spezielles GUI-Element (dünne horizontale Linie) für das Trennen verschiedener Bereiche
 *  der Benutzeroberfläche (GUI / Graphic User Interface).
 *  Damit kann die Anordnung von angezeigten Texten und Eingabefeldern auf der Benutzeroberfläche
 *  optisch besser nach zusammengehörenden Bereichen gruppiert werden.
 *  -------------------
 *  en:
 *  Special GUI-Element (thin horizontal line) to seperate different areas on the GUI (Graphic User Interface).
 *  This GUI-element allows to group shown text and input-fields belongig together and reach a better
 *  visual impact of the information presented on the user-interface.
 *
 * @change-log
 * when         who               why
 * --------------------------------------------------------
 *
 */

public class JSBS_Dividerline extends JPanel {
/*
 * Variable der Klasse / variables of the class. */
/* 
 * de:
 * Merker ob diese Dividerline eine vordefinierte, fixe Farbe – als Parameter des Konstruktors
 * übergeben – hat oder es erlaubt wird die Farbe mit der Methode 'followPanelBorderColor(...)'
 * zu ändern.
 * Sinn dieser Konstruktion ist, dass die Farbe der Panel-Border (Ränder der JPanel) auf diese
 * Dividerline übertragen werden kann.
 * Das Übertragen der Farbe erfolgt durch den Aufruf der Methode 'followPanelBorderColor(...)' innerhalb
 * der Methode 'setPanelBorders(...)' der Klasse 'JSBS_GUIServices'.
 * en:
 * Flag if this Dividerline has a predefined, fixed color – passed as a parameter of the constructor –
 * or the color is allowed to be changed via the method 'followPanelBorderColor(...)' .
 * Intention of this design is, that the color of the Panel-Borders can be transferred to this
 * Dividerline by calling method 'followPanelBorderColor(...)' within method
 * 'setPanelBorders(...)' of class 'JSBS_GUIServices'. */
    private boolean bolFollowPanelColor = false;
/*
 * ************************************************** */

/* 
 * de:
 * 'Constructor' der Klasse wenn die Farbe der Dividerline verändert werden darf.
 * en:
 * 'Constructor' of the class if the color of the dividerline is allowed to be changed later. */
    public JSBS_Dividerline() {
/* de: Aufrufen des 'Constructor' der Superklasse (JPanel).
 * en: Call the 'Constructor' of the superclass (JPanel). */
      super();
/* de: Setzen des Merkers für die Erlaubnis zur dynamischen Veränderung der Farbe.
 * en: Set the flag to allow a dynamic change of the color. */
      bolFollowPanelColor = true;
/* de: Aufrufen der Methode zum 'Einfärben' der Dividerline und Übergeben der Standard-Farbe.
 * en: Call the method to color the dividerline and passing the standard-color. */
      setColor(new Color(128, 128, 196));
    }
/* 
 * de:
 * 'Constructor' der Klasse wenn die Farbe der Dividerline mit dem als Parameter übergebenen
 * Wert eingefärbt wird und die Farbe nicht mehr verändert werden darf.
 * en:
 * 'Constructor' of the class if the color of the dividerline is passed as parameter and may
 * not be changed thereafter. */
    public JSBS_Dividerline(Color parmFixedColor) {
/* de: Aufrufen des 'Constructor' der Superklasse (JPanel).
 * en: Call the 'Constructor' of the superclass (JPanel). */
      super();
/* de: Setzen des Merkers für das Verhindern zur dynamischen Veränderung der Farbe.
 * en: Set the flag to prevent a dynamic change of the color. */
      bolFollowPanelColor = false;
/* de: Aufrufen der Methode zum 'Einfärben' der Dividerline mit der als Parameter übergebenen Farbe.
 * en: Call the method to color the dividerline with the color passed as parameter. */
      setColor(parmFixedColor);
    }
/* 
 * de:
 * METHODE zum dynamischen Verändern der Farbe der Dividerline.
 * en:
 * METHOD to dynamically change the color of the dividerline. */
    public void changeColor(Color parmNewColor) {
/* de:
 * Prüfen ob die Farbe dynamisch verändert werden darf und Ändern der Farbe wenn erlaubt.
 * en:
 * Verify if the color may be changed dynamically änd if so, change the color. */
      if (bolFollowPanelColor) setColor(parmNewColor);
    }
/* 
 * de:
 * METHODE (intern) zum Festlegen der Größe und 'Einfärben* der Dividerline.
 * en:
 * METHOD (intern) to define the size and color of the dividerline. */
    private void setColor(Color parmColor) {
/* de:
 * Zuerst Festlegen der Größe(n) damit die Dividerline auch in einem 'GridBagLayout' verwendet werden kann.
 * Die Definition der 'PreferredSize' ist notwendig weil durch eine Eigenheit von Java sonst die Einstellungen
 * für 'MinimumSize' und 'MaximumSize' nicht wirksam werden.
 * en:
 * First define the size(s) so that the Dividerline can be used within a 'GridBagLayout', too.
 * The definition of 'PreferredSize' is requiered as, due to a quirk of Java, the settings for
 * 'MinimumSize' and 'MaximumSize' would have no effect otherwise. */
      this.setPreferredSize(new Dimension(100, 2));
      this.setMinimumSize(new Dimension(100, 2));
      this.setMaximumSize(new Dimension(5000, 2));
/* de: Setzen des Hintergrundes mit der als Parameter übergebenen Farbe.
 * en: Set the background-color with the color passed as parameter. */
      this.setBackground(parmColor);
    }
}

zum Inhaltsverzeichnis

Erklärungen und Anwendungsbeispiele

Erstellen eines Objektes dieser Klasse

Zuerst muss eine Variable dieser Klasse definiert werden - eine detaillierte Beschreibung dazu finden Sie unter Muster-Code für die Klassen eines Task-Frame > Definieren der Variablen für die GUI-Elemente:
/*
 * Muster-GUI-Elemente;
 * Diese sind durch jene GUI-Elemente, die für diesen Task-Frame spezifisch sind,
 * zu ersetzen. */

    
private JSBS_Dividerline dl_Sample_Areas_To_Be_Separated;
. . . . . . .
. . . . . . .

Ein fehlersicherer Algorithmus ist, das Erstellen eines Objektes dieser Klasse innerhalb einer eigenen Methode auszuführen.
Das 'Verwenden' des Objektes dieser Klasse erfolgt durch den Aufruf der Methode – damit ist sicher gestellt, dass die Variable nicht 'null' sein kann.
Eine detaillierte Beschreibung dazu finden Sie unter
Muster-Code für die Klassen eines Task-Frame > Adaptieren der 'Constructor'-Methoden für jedes GUI-Element.
Der im folgenden Beispiel gezeigte Code ist einfach und – wenn er innerhalb des
JavaScout Fat-Client-Frameworks / JS-FCF verwendet wird – die Farbe der Linie wird jener der Ränder (Borders) der JPanel angepasst.
/* */
    protected JSBS_Dividerline get_dl_Sample_Areas_To_Be_Separated() {
/* Zuerst Prüfen, ob die Variable bereits 'constructed' (initialisiert) ist. */
      if (dl_Sample_Areas_To_Be_Separated == null) {
/* Variable noch nicht 'constructed'; Code für die Initialisierung folgt. */
        try {
          dl_Sample_Areas_To_Be_Separated = new JSBS_Dividerline();
          dl_Sample_Areas_To_Be_Separated.setName("dl_Sample_Areas_To_Be_Separated");
        }
        catch (Throwable Exc) {
/* Fehler beim 'construct' ist sehr unwahrscheinlich und kann nur beim 'Starten'
 * des Tasks auftreten.
 * Deswegen werden Fehlermeldungen nur auf der Konsole ausgegeben. */
          System.out.println("Error while building dl_Sample_Areas_To_Be_Separated in class application_task.");
          Exc.printStackTrace();
        }
      }
      return dl_Sample_Areas_To_Be_Separated;
    }

Wenn die Trennlinie mit einer fixen Farbe angezeigt werden soll dann wird die Farbe (Java-Klasse 'Color') beim Konstruieren der JSBS_Dividerline als Parameter übergeben:
/* */
    protected JSBS_Dividerline get_dl_Sample_Areas_To_Be_Separated() {
. . . . .
. . . . .
          dl_Sample_Areas_To_Be_Separated = new JSBS_Dividerline(new Color(250, 0, 0));
. . . . .
. . . . .

zum Inhaltsverzeichnis

Verwandte Dokumentation

Dokument

Inhalt

Muster-Code für die Klassen eines Task-Frames > Muster-Code für die Klasse für das Frame (GUI)  

In diesem Muster wird ein GUI-Element (dieser Klasse JSBS_Dividerline) erstellt und innerhalb eines GridBagLayout platziert.
Dabei ist auch ein Muster-Code für das Reagieren auf die Änderung des angezeigten Images beschrieben.

zum Inhaltsverzeichnis