|
Letzte
Bearbeitung dieses Dokuments: |
Übersichtsbeschreibung
Code
Erklärungen
und Anwendungsbeispiele
* Erstellen
eines Objektes dieser Klasse
Verwandte
Dokumentation
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
.
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);
}
}
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)
);
.
. . . .
. . . . .
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. |