Substance Java One 2007 Community Corner

Post on 14-May-2015

1,883 views 1 download

Tags:

description

JavaOne 2007 Community Corner presentation on Substance look-and-feel

transcript

Substance look and feelJavaOne 2007 Community Corner

An application before Substance

Same application with Substance

Same application with Substance

Using Substance in you app

Go to https://substance.dev.java.net

Download the latest substance.jar

Use one of the three options:◦ UIManager.setLookAndFeel(

new SubstanceLookAndFeel())

◦ UIManager.setLookAndFeel(“org.jvnet.substance.SubstanceLookAndFeel”)

◦ -Dswing.defaultlaf=org.jvnet.substance.SubstanceLookAndFeel

Substance themes

Contains information on control colors

for different visual states (disabled,

default, active)

Base class – SubstanceTheme

Use bundled core themes

Use APIs to create derived themes

Extend and create a custom theme

Substance simple themes

SubstanceAquaTheme SubstanceBottleGreenTheme

SubstancePurpleTheme SubstanceOliveTheme

Substance derived themes

Invert, negate, saturate, hue-shift and

color-blind

Example of hue-shift:SubstanceTheme theme = SubstanceLookAndFeel.getTheme();SubstanceTheme shifted = theme.hueShift(-0.5);SubstanceLookAndFeel.setCurrentTheme(shifted);

Substance watermarks

Simple watermarks

Image-based watermarks

SubstanceBinaryWatermark SubstanceWoodWatermark

SubstanceImageWatermark + APP_TILE

Substance skins

A collection of various settings (theme,

watermark, painters, shapers etc).

In org.jvnet.substance.skinpackage

Can set as

◦ SubstanceLookAndFeel.setSkin(…)

◦ Derived look and feel classes based on a

specific skin (set with UIManager or VM

flag)

Substance toned-down skins

SubstanceBusinessLookAndFeel

SubstanceCremeLookAndFeel

SubstanceBusinessBlackSteelLookAndFeel

SubstanceSaharaLookAndFeel

Substance dark skins

SubstanceRavenGraphiteLookAndFeel

SubstanceEmeraldDuskLookAndFeel

SubstanceRavenLookAndFeel

SubstanceChallengerDeepLookAndFeel

Substance saturated skins

SubstanceOfficeBlue2007LookAndFeel

SubstanceGreenMagicLookAndFeel

SubstanceFieldOfWheatLookAndFeel

SubstanceFindingNemoLookAndFeel

Configuring animations

LafWidget.ANIMATION_KIND –

controls animation speed (0.5 sec for

a transition by default)

FadeConfigurationManager APIs –

to enable / disable animations

◦ On a specific control

◦ On control class (JTree, for example)

◦ Globally

Custom appearance

Theme – extend SubstanceTheme or

use derivation APIs

Watermark – implement SubstanceWatermark

Skin – implement SubstanceSkin or

extend SubstanceAbstractSkin(provides basic functionality)

See existing core implementation and

test app for examples

Additional UI elements

Substance provides additional “feel”

part for some Swing components

These are called widgets

Some widgets are turned on by default

Most widgets are configurable

Some widgets are not visible –

behavior only

Widget examples

Menu search panel on big menus

Lock icon on non-editable text

components

Auto-completion on editable

comboboxes

Password strength checker

Tab overview panel

Tree smart scroll

Substance plugins

Substance provides a plugin

mechanism for third-party components

No need to change the code – just

drop the plugin jar in the classpath

Available plugins for:

◦ NetBeans – module supports 5.0 and 5.5

◦ SwingX at https://swingx.dev.java.net

◦ Flamingo at https://flamingo.dev.java.net

SwingX plugin

Provides consistent appearance

(colors, fonts, animation) for

◦ Task pane container and task panes

◦ Status bar

◦ Month view

◦ Date picker

◦ Translucency on JXPanel

More to come as SwingX matures and

reaches the first release

Q&A

Visit https://substance.dev.java.net

Mail kirillcool@yahoo.com

See http://javootoo.com for a list of

other third-party look and feels