From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../hjp5/html/k100165.html | 308 +++++++++++++++++++++ 1 file changed, 308 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/html/k100165.html (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100165.html') diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100165.html b/Master/Reference Architectures and Patterns/hjp5/html/k100165.html new file mode 100644 index 0000000..5ce3d10 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/html/k100165.html @@ -0,0 +1,308 @@ + + + +Handbuch der Java-Programmierung, 5. Auflage + + + + + + + + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage +
 <<  +  <   +  >   + >>  + API  +Kapitel 25 - Farben +
+
+ + + + +

25.4 Systemfarben

+
+ +
+ +

+Um ihren Anwendungen ein einheitliches Look-and-Feel zu geben, definieren +grafische Oberflächen in der Regel eine Reihe von Systemfarben. +Diese können im Programm verwendet werden, um beispielsweise +die Farbe des Hintergrunds oder die von Dialogelementen konsistent +festzulegen. Während es in früheren Versionen von Java keine +Möglichkeit gab, auf Systemfarben zuzugreifen, steht diese Möglichkeit +mit der Klasse SystemColor +im JDK 1.1 portabel zur Verfügung. + +

+SystemColor +ist aus Color +abgeleitet und unterscheidet sich von ihr vor allem durch die Fähigkeit, +die Farbe dynamisch zu ändern. Dieses Feature ist auf Systemen +interessant, die eine Nachricht an die Anwendung senden, wenn sich +eine Systemfarbe geändert hat. Wir wollen an dieser Stelle nicht +näher darauf eingehen. + +

+Die Klasse SystemColor +stellt eine Reihe von vordefinierten Farben zur Verfügung, die +zu den entsprechenden Systemfarben des Desktops korrespondieren. Da +SystemColor +aus Color +abgeleitet ist, können diese leicht anstelle eines anwendungsspezifischen +Color-Objekts +verwendet werden, wenn eine einheitliche Farbgebung gewünscht +ist. Tabelle 25.2 +gibt eine Übersicht dieser Farben. + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FarbkonstanteBedeutung
SystemColor.desktopHintergrundfarbe des Desktops
SystemColor.activeCaptionHintergrundfarbe für die Titelleiste +von selektierten Fenstern
SystemColor.activeCaptionTextSchriftfarbe für die Titelleiste von +selektierten Fenstern
SystemColor.activeCaptionBorderRahmenfarbe für die Titelleiste von +selektierten Fenstern
SystemColor.inactiveCaptionHintergrundfarbe für die Titelleiste +von nicht selektierten Fenstern
SystemColor.inactiveCaptionTextSchriftfarbe für die Titelleiste von +nicht selektierten Fenstern
SystemColor.inactiveCaptionBorderRahmenfarbe für die Titelleiste von +nicht selektierten Fenstern
SystemColor.windowHintergrundfarbe für Fenster
SystemColor.windowBorderFarbe für Fensterrahmen
SystemColor.windowTextFarbe für Text im Fenster
SystemColor.menuHintergrundfarbe für Menüs
SystemColor.menuTextTextfarbe für Menüs
SystemColor.textHintergrundfarbe für Textfelder
SystemColor.textTextTextfarbe für Textfelder
SystemColor.textHighlightHintergrundfarbe für hervorgehobenen +Text
SystemColor.textHighlightTextTextfarbe für hervorgehobenen Text +
SystemColor.textInactiveTextTextfarbe für inaktiven Text
SystemColor.controlHintergrundfarbe für Dialogelemente +
SystemColor.controlTextTextfarbe für Dialogelemente
SystemColor.controlHighlightFarbe für hervorgehobene Dialogelemente +
SystemColor.controlLtHighlightHelle Farbe für hervorgehobene Dialogelemente +
SystemColor.controlShadowFarbe für den Schatten von Dialogelementen +
SystemColor.controlDkShadowDunklere Farbe für den Schatten von +Dialogelementen
SystemColor.scrollbarHintergrundfarbe für Schieberegler +
SystemColor.infoHintergrundfarbe für Hilfetext
SystemColor.infoTextTextfarbe für Hilfetext
+

+Tabelle 25.2: Liste der vordefinierten Systemfarben

+ +

+Das folgende Listing zeigt ein einfaches Programm, das den Text »Tag +& Nacht« in den Systemfarben für normalen und hervorgehobenen +Text ausgibt. Als Fensterhintergrund wird die Systemfarbe desktop +verwendet. Der Text »Tag« wird mit Hilfe der Systemfarben +textText +und text +in normaler Textfarbe auf normalem Texthintergrund ausgegeben. Der +Text »Nacht« wird dagegen mit den Systemfarben textHighlight +und textHighlightText +invertiert dargestellt. Das dazwischenstehende »&« wird +in Blau auf normalem Hintergrund ausgegeben. + + +

+ + + + + +
+ +
+001 /* Listing2502.java */
+002 
+003 import java.awt.*;
+004 import java.awt.event.*;
+005 
+006 public class Listing2502
+007 extends Frame
+008 {
+009   public static void main(String[] args)
+010   {
+011     Listing2502 wnd = new Listing2502();
+012   }
+013 
+014   public Listing2502()
+015   {
+016     super("Systemfarben");
+017     setBackground(SystemColor.desktop);
+018     setSize(200,100);
+019     setVisible(true);
+020     addWindowListener(new WindowClosingAdapter(true));
+021   }
+022 
+023   public void paint(Graphics g)
+024   {
+025     g.setFont(new Font("Serif",Font.PLAIN,36));
+026     FontMetrics fm = g.getFontMetrics();
+027     int sheight    = fm.getHeight();
+028     int curx       = 10;
+029     int cury       = getInsets().top + 10;
+030     //"Tag" in normaler Textfarbe
+031     int swidth  = fm.stringWidth("Tag");
+032     g.setColor(SystemColor.text);
+033     g.fillRect(curx,cury,swidth,sheight);
+034     g.setColor(SystemColor.textText);
+035     g.drawString("Tag",curx,cury+fm.getAscent());
+036     //"&" in Blau auf normalem Hintergrund
+037     curx += swidth + 5;
+038     swidth = fm.stringWidth("&");
+039     g.setColor(Color.blue);
+040     g.drawString("&",curx,cury+fm.getAscent());
+041     //"Nacht" in hervorgehobener Textfarbe
+042     curx += swidth + 5;
+043     swidth = fm.stringWidth("Nacht");
+044     g.setColor(SystemColor.textHighlight);
+045     g.fillRect(curx,cury,swidth,sheight);
+046     g.setColor(SystemColor.textHighlightText);
+047     g.drawString("Nacht",curx,cury+fm.getAscent());
+048   }
+049 }
+
+
+Listing2502.java
+ +Listing 25.2: Verwendung von Systemfarben

+ +

+Abbildung 25.2 zeigt +die Ausgabe des Programms: +

+ + +

+ +

+Abbildung 25.2: Verwendung von Systemfarben

+

+ + + + + + + + + +
+ +

+Ein weiteres Beispiel zur Verwendung der Systemfarben findet sich +in Kapitel 32. +Das zu dem Dialogelement ScrollPane +vorgestellte Beispielprogramm zeigt alle Systemfarben zusammen mit +ihrem Namen in einem verschiebbaren Fenster an.

+ + + + +
 Hinweis 
+
+


+ + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage, Addison +Wesley, Version 5.0.1 +
 <<  +  <   +  >   + >>  + API  +© 1998, 2007 Guido Krüger & Thomas +Stark, http://www.javabuch.de +
+ + + -- cgit v1.2.3