mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-12 15:07:11 -06:00
FlatBorder: access UIManager only on construction (for performance and to be GUI builder friendly)
This commit is contained in:
@@ -33,11 +33,30 @@ import javax.swing.text.JTextComponent;
|
|||||||
/**
|
/**
|
||||||
* Border for various components (e.g. {@link javax.swing.JTextField}).
|
* Border for various components (e.g. {@link javax.swing.JTextField}).
|
||||||
*
|
*
|
||||||
|
* There is empty space around the component border, if Component.focusWidth > 0,
|
||||||
|
* which is used to paint focus border.
|
||||||
|
*
|
||||||
|
* Because there is empty space (if focus border is not painted),
|
||||||
|
* UI delegates that use this border (or subclasses) must invoke
|
||||||
|
* {@link FlatUIUtils#paintParentBackground} to paint the empty space correctly.
|
||||||
|
*
|
||||||
|
* @uiDefault Component.focusWidth int
|
||||||
|
* @uiDefault Component.focusColor Color
|
||||||
|
* @uiDefault Component.borderColor Color
|
||||||
|
* @uiDefault Component.disabledBorderColor Color
|
||||||
|
* @uiDefault Component.focusedBorderColor Color
|
||||||
|
*
|
||||||
* @author Karl Tauber
|
* @author Karl Tauber
|
||||||
*/
|
*/
|
||||||
public class FlatBorder
|
public class FlatBorder
|
||||||
extends BasicBorders.MarginBorder
|
extends BasicBorders.MarginBorder
|
||||||
{
|
{
|
||||||
|
protected final int focusWidth = UIManager.getInt( "Component.focusWidth" );
|
||||||
|
protected final Color focusColor = UIManager.getColor( "Component.focusColor" );
|
||||||
|
protected final Color borderColor = UIManager.getColor( "Component.borderColor" );
|
||||||
|
protected final Color disabledBorderColor = UIManager.getColor( "Component.disabledBorderColor" );
|
||||||
|
protected final Color focusedBorderColor = UIManager.getColor( "Component.focusedBorderColor" );
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void paintBorder( Component c, Graphics g, int x, int y, int width, int height ) {
|
public void paintBorder( Component c, Graphics g, int x, int y, int width, int height ) {
|
||||||
Graphics2D g2 = (Graphics2D) g.create();
|
Graphics2D g2 = (Graphics2D) g.create();
|
||||||
@@ -61,12 +80,14 @@ public class FlatBorder
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected Color getFocusColor( Component c ) {
|
protected Color getFocusColor( Component c ) {
|
||||||
return UIManager.getColor( "Component.focusColor" );
|
return focusColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Paint getBorderColor( Component c ) {
|
protected Paint getBorderColor( Component c ) {
|
||||||
boolean enabled = c.isEnabled() && (!(c instanceof JTextComponent) || ((JTextComponent)c).isEditable());
|
boolean enabled = c.isEnabled() && (!(c instanceof JTextComponent) || ((JTextComponent)c).isEditable());
|
||||||
return FlatUIUtils.getBorderColor( enabled, isFocused( c ) );
|
return enabled
|
||||||
|
? (isFocused( c ) ? focusedBorderColor : borderColor)
|
||||||
|
: disabledBorderColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean isFocused( Component c ) {
|
protected boolean isFocused( Component c ) {
|
||||||
@@ -94,11 +115,11 @@ public class FlatBorder
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected float getFocusWidth() {
|
protected float getFocusWidth() {
|
||||||
return FlatUIUtils.getFocusWidth();
|
return scale( (float) focusWidth );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected float getLineWidth() {
|
protected float getLineWidth() {
|
||||||
return FlatUIUtils.getLineWidth();
|
return scale( 1f );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected float getArc() {
|
protected float getArc() {
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.formdev.flatlaf.ui;
|
package com.formdev.flatlaf.ui;
|
||||||
|
|
||||||
|
import static com.formdev.flatlaf.util.UIScale.scale;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.awt.GradientPaint;
|
import java.awt.GradientPaint;
|
||||||
@@ -26,11 +27,31 @@ import javax.swing.UIManager;
|
|||||||
/**
|
/**
|
||||||
* Border for {@link javax.swing.JButton}.
|
* Border for {@link javax.swing.JButton}.
|
||||||
*
|
*
|
||||||
|
* @uiDefault Button.startBorderColor Color
|
||||||
|
* @uiDefault Button.endBorderColor Color
|
||||||
|
* @uiDefault Button.disabledBorderColor Color
|
||||||
|
* @uiDefault Button.focusedBorderColor Color
|
||||||
|
* @uiDefault Button.default.startBorderColor Color
|
||||||
|
* @uiDefault Button.default.endBorderColor Color
|
||||||
|
* @uiDefault Button.default.focusedBorderColor Color
|
||||||
|
* @uiDefault Button.default.focusColor Color
|
||||||
|
* @uiDefault Button.arc int
|
||||||
|
*
|
||||||
* @author Karl Tauber
|
* @author Karl Tauber
|
||||||
*/
|
*/
|
||||||
public class FlatButtonBorder
|
public class FlatButtonBorder
|
||||||
extends FlatBorder
|
extends FlatBorder
|
||||||
{
|
{
|
||||||
|
protected final Color startBorderColor = UIManager.getColor( "Button.startBorderColor" );
|
||||||
|
protected final Color endBorderColor = UIManager.getColor( "Button.endBorderColor" );
|
||||||
|
protected final Color disabledBorderColor = UIManager.getColor( "Button.disabledBorderColor" );
|
||||||
|
protected final Color focusedBorderColor = UIManager.getColor( "Button.focusedBorderColor" );
|
||||||
|
protected final Color defaultStartBorderColor = UIManager.getColor( "Button.default.startBorderColor" );
|
||||||
|
protected final Color defaultEndBorderColor = UIManager.getColor( "Button.default.endBorderColor" );
|
||||||
|
protected final Color defaultFocusedBorderColor = UIManager.getColor( "Button.default.focusedBorderColor" );
|
||||||
|
protected final Color defaultFocusColor = UIManager.getColor( "Button.default.focusColor" );
|
||||||
|
protected final int arc = UIManager.getInt( "Button.arc" );
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void paintBorder( Component c, Graphics g, int x, int y, int width, int height ) {
|
public void paintBorder( Component c, Graphics g, int x, int y, int width, int height ) {
|
||||||
if( FlatButtonUI.isContentAreaFilled( c ) )
|
if( FlatButtonUI.isContentAreaFilled( c ) )
|
||||||
@@ -39,9 +60,7 @@ public class FlatButtonBorder
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Color getFocusColor( Component c ) {
|
protected Color getFocusColor( Component c ) {
|
||||||
return UIManager.getColor( FlatButtonUI.isDefaultButton( c )
|
return FlatButtonUI.isDefaultButton( c ) ? defaultFocusColor : super.getFocusColor( c );
|
||||||
? "Button.default.focusColor"
|
|
||||||
: "Component.focusColor" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -49,20 +68,20 @@ public class FlatButtonBorder
|
|||||||
if( c.isEnabled() ) {
|
if( c.isEnabled() ) {
|
||||||
boolean def = FlatButtonUI.isDefaultButton( c );
|
boolean def = FlatButtonUI.isDefaultButton( c );
|
||||||
if( c.hasFocus() )
|
if( c.hasFocus() )
|
||||||
return UIManager.getColor( def ? "Button.default.focusedBorderColor" : "Button.focusedBorderColor" );
|
return def ? defaultFocusedBorderColor : focusedBorderColor;
|
||||||
|
|
||||||
Color startColor = UIManager.getColor( def ? "Button.default.startBorderColor" : "Button.startBorderColor" );
|
Color startColor = def ? defaultStartBorderColor : startBorderColor;
|
||||||
Color endColor = UIManager.getColor( def ? "Button.default.endBorderColor" : "Button.endBorderColor" );
|
Color endColor = def ? defaultEndBorderColor : endBorderColor;
|
||||||
return (startColor.equals( endColor ) )
|
return (startColor.equals( endColor ) )
|
||||||
? startColor
|
? startColor
|
||||||
: new GradientPaint( 0, getFocusWidth(), startColor,
|
: new GradientPaint( 0, getFocusWidth(), startColor,
|
||||||
0, c.getHeight() - getFocusWidth() - 1f, endColor );
|
0, c.getHeight() - getFocusWidth() - 1f, endColor );
|
||||||
} else
|
} else
|
||||||
return UIManager.getColor( "Button.disabledBorderColor" );
|
return disabledBorderColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected float getArc() {
|
protected float getArc() {
|
||||||
return FlatUIUtils.getButtonArc();
|
return scale( (float) arc );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,16 +16,23 @@
|
|||||||
|
|
||||||
package com.formdev.flatlaf.ui;
|
package com.formdev.flatlaf.ui;
|
||||||
|
|
||||||
|
import static com.formdev.flatlaf.util.UIScale.scale;
|
||||||
|
import javax.swing.UIManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Border for various components (e.g. {@link javax.swing.JComboBox}).
|
* Border for various components (e.g. {@link javax.swing.JComboBox}).
|
||||||
*
|
*
|
||||||
|
* @uiDefault Component.arc int
|
||||||
|
*
|
||||||
* @author Karl Tauber
|
* @author Karl Tauber
|
||||||
*/
|
*/
|
||||||
public class FlatRoundBorder
|
public class FlatRoundBorder
|
||||||
extends FlatBorder
|
extends FlatBorder
|
||||||
{
|
{
|
||||||
|
protected final int arc = UIManager.getInt( "Component.arc" );
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected float getArc() {
|
protected float getArc() {
|
||||||
return FlatUIUtils.getComponentArc();
|
return scale( (float) arc );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,10 +61,6 @@ public class FlatUIUtils
|
|||||||
return scale( (float) getUIInt( "Component.focusWidth", 2 ) );
|
return scale( (float) getUIInt( "Component.focusWidth", 2 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public static float getLineWidth() {
|
|
||||||
return scale( 1f );
|
|
||||||
}
|
|
||||||
|
|
||||||
public static float getComponentArc() {
|
public static float getComponentArc() {
|
||||||
return scale( (float) getUIInt( "Component.arc", 5 ) );
|
return scale( (float) getUIInt( "Component.arc", 5 ) );
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user