Skip to content

UIResource

homebeaver edited this page Feb 3, 2025 · 4 revisions

Diese Schnittstelle hat keine Implementierung und wird ausschließlich zum Markieren von Ressourcenobjekten verwendet.

Beispiele findet man in package javax.swing.plaf:

public class InsetsUIResource extends Insets implements UIResource ...
public class FontUIResource extends Font implements UIResource ...
public class IconUIResource implements Icon, UIResource, Serializable {
    private Icon delegate;
    ...
public class BorderUIResource implements Border, UIResource, Serializable ...
public class ColorUIResource extends Color implements UIResource ...

Sie sind Subklassen des Objekts, das die Resource bereitstellt InsetsUIResource extends Insets oder sie delegieren als Wrapper-Klassen (IconUIResource). Diese Klassen werden zum Zuweisen von Ressourcen verwendet, die freigegeben werden, wenn der UI-Delegierte einer Komponente geändert wird. Mit anderen Worten: Wenn wir einer Instanz von JLabel einen Hintergrund von Color.Yellow zuweisen würden, bliebe diese Hintergrundeinstellung auch bei einer Änderung des UI-Delegierten bestehen. Wenn wir diesem JLabel jedoch einen Hintergrund von new ColorUIResource(Color.Yellow) zuweisen, bleibt der Hintergrund nur so lange bestehen, bis ein anderer UI-Delegierter installiert wird. Wenn der nächste UI-Delegierte installiert wird, erhält das Label einen neuen Label-Hintergrund basierend auf L&F, zu dem der neue UI-Delegierte gehört.

Neben den "einfachen" Resource-Klassen aus package javax.swing.plaf gibt es auch komplexere, oft als inner-Klassen versteckt:

// inner class javax.swing.DefaultListCellRenderer.UIResource 
    public static class UIResource extends DefaultListCellRenderer implements UIResource {
        public UIResource() {}
    }
---
// inner class javax.swing.plaf.basic.BasicComboBoxEditor.UIResource 
    public static class UIResource extends BasicComboBoxEditor implements UIResource {
        public UIResource() {}
    }

Glossar

A

Algorithmus : eine Sammlung von Algorithmen in java, von Euklid bis RSA

AutoComplete : package bzw. class zur Autovervollständigung in Text Komponenten

B

Batik : Subprojekt von Apache XML Graphics Project

BSAF : Better Swing Application Framework

BuddySupport : erweitert Textkomponenten

C

Color : Farben im Farbkreis, Farbraum

Collection views : zu den SwingX collection views gehören JXList, JXTree, JXTable und JXTreeTable

ComboBox : allgemein (Wikipedia)

D

Demos : Demos-doku, github repo: SwingSet3-demos

dependences : projects in SwingSet3

E

EDT : Event Dispatch Thread

F

G

GPX : GPS Exchange Format - ein XML-Datenformat mit Geo-Ortspunkten, -Routen und -Tracks

GUI : Graphical User Interface, Benutzeroberfläche, allgemein, siehe auch L&F (Look&Feel)

GVT : Batik Graphics Vector Tree (GVT) gehört zu Apache XML Graphics Project

H

I

J

JDNC : Java Desktop Network Component, s. BSAF

JPMS : Java Platform Module System, aka Modulsystem Jigsaw

JTextComponent, JTextField, JTextArea : siehe Prompt- und BuddySupport

K

Kenai : History of SwingLabs

L

L&F : als Look&Feel wird das Aussehen und Verhalten der Benutzeroberfäche bezeichnet.

LazyValue : TODO siehe MetalButtonPainterIssues

List, JList, JXList : Listen von Werten darstellen List, JList, JXList

M

N

Nimbus : Mit Java 1.6 wurde das cross-platform Look-and-Feel eingeführt. Es wird per properties konfiguriert, siehe Nimbus-UI-defaults

O

OSSRH : Open Source Software Repository Hosting, zentrales öffentliches Repository für Artefakte: Central-OSSRH

P

PLAF : steht für Pluggable Look And Feel

PromptSupport : erweitert Textkomponenten

public key server : siehe distributing-your-public-key

Q

R

Renderer : die Darstellung von mehr oder weniger komplexen Objekten auf der Benutzeroberfäche im gewählten Look&Feel

S

SAM : Single Abstract Method interface, Beispiel StringValue

SVG : Scalable Vector Graphics, XML-Beschreibung von Vektorgrafiken

SwingLabs : History of SwingLabs

SwingSet2 : github repo: SwingSet2-demos

SwingSet3 : github repo: SwingSet3, SwingSet3-demos

SwingX : package org.jdesktop.swingx SwingX

Synth : Seit Java 1.5 gibt es das Synth-Look-and-Feel, dessen Erscheinungsbild in einer XML-Datei beschrieben wird, s. Nimbus

T

Table : JXTable (de) erweitert javax.swing.JTable

Tests : Tests (de)

TextComponent : siehe Prompt- und BuddySupport

Tree : JXTree (de) erweitert javax.swing.JTree

TreeTable : JXTreeTable (de) ist ein Zwitter mit Eigenschaften von Tree und Table

Trident : Trident animation library (de)

U

UI : User Interface, Benutzerschnittstelle, allgemein, siehe auch GUI, L&F (Look&Feel)

V

W

X

Y

Z

Clone this wiki locally