mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-13 07:17:13 -06:00
FlatCheckBoxIcon: access UIManager only on construction (for performance and to be GUI builder friendly)
This commit is contained in:
@@ -18,6 +18,7 @@ package com.formdev.flatlaf.ui;
|
|||||||
|
|
||||||
import static com.formdev.flatlaf.util.UIScale.*;
|
import static com.formdev.flatlaf.util.UIScale.*;
|
||||||
import java.awt.BasicStroke;
|
import java.awt.BasicStroke;
|
||||||
|
import java.awt.Color;
|
||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
@@ -31,12 +32,38 @@ import com.formdev.flatlaf.util.UIScale;
|
|||||||
/**
|
/**
|
||||||
* Icon for {@link javax.swing.JCheckBox}.
|
* Icon for {@link javax.swing.JCheckBox}.
|
||||||
*
|
*
|
||||||
|
* @uiDefault Component.focusWidth int
|
||||||
|
* @uiDefault Component.focusColor Color
|
||||||
|
* @uiDefault CheckBox.icon.borderColor Color
|
||||||
|
* @uiDefault CheckBox.icon.disabledBorderColor Color
|
||||||
|
* @uiDefault CheckBox.icon.selectedBorderColor Color
|
||||||
|
* @uiDefault CheckBox.icon.focusedBorderColor Color
|
||||||
|
* @uiDefault CheckBox.icon.selectedFocusedBorderColor Color
|
||||||
|
* @uiDefault CheckBox.icon.background Color
|
||||||
|
* @uiDefault CheckBox.icon.disabledBackground Color
|
||||||
|
* @uiDefault CheckBox.icon.selectedBackground Color
|
||||||
|
* @uiDefault CheckBox.icon.checkmarkColor Color
|
||||||
|
* @uiDefault CheckBox.icon.disabledCheckmarkColor Color
|
||||||
|
*
|
||||||
* @author Karl Tauber
|
* @author Karl Tauber
|
||||||
*/
|
*/
|
||||||
public class FlatCheckBoxIcon
|
public class FlatCheckBoxIcon
|
||||||
implements Icon, UIResource
|
implements Icon, UIResource
|
||||||
{
|
{
|
||||||
protected final int focusWidth = UIManager.getInt( "Component.focusWidth" );
|
protected final int focusWidth = UIManager.getInt( "Component.focusWidth" );
|
||||||
|
protected final Color focusColor = UIManager.getColor( "Component.focusColor" );
|
||||||
|
|
||||||
|
protected final Color borderColor = UIManager.getColor( "CheckBox.icon.borderColor" );
|
||||||
|
protected final Color disabledBorderColor = UIManager.getColor( "CheckBox.icon.disabledBorderColor" );
|
||||||
|
protected final Color selectedBorderColor = UIManager.getColor( "CheckBox.icon.selectedBorderColor" );
|
||||||
|
protected final Color focusedBorderColor = UIManager.getColor( "CheckBox.icon.focusedBorderColor" );
|
||||||
|
protected final Color selectedFocusedBorderColor = UIManager.getColor( "CheckBox.icon.selectedFocusedBorderColor" );
|
||||||
|
protected final Color background = UIManager.getColor( "CheckBox.icon.background" );
|
||||||
|
protected final Color disabledBackground = UIManager.getColor( "CheckBox.icon.disabledBackground" );
|
||||||
|
protected final Color selectedBackground = UIManager.getColor( "CheckBox.icon.selectedBackground" );
|
||||||
|
protected final Color checkmarkColor = UIManager.getColor( "CheckBox.icon.checkmarkColor" );
|
||||||
|
protected final Color disabledCheckmarkColor = UIManager.getColor( "CheckBox.icon.disabledCheckmarkColor" );
|
||||||
|
|
||||||
protected final int iconSize = 15 + (focusWidth * 2);
|
protected final int iconSize = 15 + (focusWidth * 2);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -54,29 +81,27 @@ public class FlatCheckBoxIcon
|
|||||||
|
|
||||||
// paint focused border
|
// paint focused border
|
||||||
if( focused ) {
|
if( focused ) {
|
||||||
g2.setColor( UIManager.getColor( "Component.focusColor" ) );
|
g2.setColor( focusColor );
|
||||||
paintFocusBorder( g2 );
|
paintFocusBorder( g2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
// paint border
|
// paint border
|
||||||
g2.setColor( UIManager.getColor( enabled
|
g2.setColor( enabled
|
||||||
? (selected
|
? (selected
|
||||||
? (focused ? "CheckBox.icon.selectedFocusedBorderColor" : "CheckBox.icon.selectedBorderColor")
|
? (focused ? selectedFocusedBorderColor : selectedBorderColor)
|
||||||
: (focused ? "CheckBox.icon.focusedBorderColor" : "CheckBox.icon.borderColor"))
|
: (focused ? focusedBorderColor : borderColor))
|
||||||
: "CheckBox.icon.disabledBorderColor" ) );
|
: disabledBorderColor );
|
||||||
paintBorder( g2 );
|
paintBorder( g2 );
|
||||||
|
|
||||||
// paint background
|
// paint background
|
||||||
g2.setColor( UIManager.getColor( enabled
|
g2.setColor( enabled
|
||||||
? (selected
|
? (selected ? selectedBackground : background)
|
||||||
? "CheckBox.icon.selectedBackground"
|
: disabledBackground );
|
||||||
: "CheckBox.icon.background")
|
|
||||||
: "CheckBox.icon.disabledBackground" ) );
|
|
||||||
paintBackground( g2 );
|
paintBackground( g2 );
|
||||||
|
|
||||||
// paint checkmark
|
// paint checkmark
|
||||||
if( selected ) {
|
if( selected ) {
|
||||||
g2.setColor( UIManager.getColor( enabled ? "CheckBox.icon.checkmarkColor" : "CheckBox.icon.disabledCheckmarkColor" ) );
|
g2.setColor( enabled ? checkmarkColor : disabledCheckmarkColor );
|
||||||
paintCheckmark( g2 );
|
paintCheckmark( g2 );
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
Reference in New Issue
Block a user