Drop shadows:

- reworked drop shadows implementation to support 4-sided shadows
- use 4-sided shadow for internal frames
- made shadows configurable in UI defaults
- made shadows dark in dark themes

(issue #94)
This commit is contained in:
Karl Tauber
2020-05-10 15:38:50 +02:00
parent 06cad7ecd8
commit 0a0f834f23
11 changed files with 250 additions and 43 deletions

View File

@@ -3,6 +3,8 @@ FlatLaf Change Log
## Unreleased ## Unreleased
- Added drop shadows to popup menus, combobox popups, tooltips and internal
frames. (issue #94)
- Added Java 9 module descriptor to `flatlaf-extras-<version>.jar` and - Added Java 9 module descriptor to `flatlaf-extras-<version>.jar` and
`flatlaf-swingx-<version>.jar`. `flatlaf-swingx-<version>.jar`.

View File

@@ -29,6 +29,12 @@ import com.formdev.flatlaf.util.UIScale;
/** /**
* Paints a drop shadow border around the component. * Paints a drop shadow border around the component.
* Supports 1-sided, 2-side, 3-sided or 4-sided drop shadows.
* <p>
* The shadow insets allow specifying drop shadow thickness for each side.
* A zero or negative value hides the drop shadow on that side.
* A negative value can be used to indent the drop shadow on corners.
* E.g. -4 on left indents drop shadow at top-left and bottom-left corners by 4 pixels.
* *
* @author Karl Tauber * @author Karl Tauber
*/ */
@@ -36,10 +42,10 @@ public class FlatDropShadowBorder
extends FlatEmptyBorder extends FlatEmptyBorder
{ {
private final Color shadowColor; private final Color shadowColor;
private final int shadowSize; private final Insets shadowInsets;
private final int cornerInset; private final float shadowOpacity;
private final int shadowAlpha;
private final int shadowSize;
private Image shadowImage; private Image shadowImage;
private Color lastShadowColor; private Color lastShadowColor;
private double lastSystemScaleFactor; private double lastSystemScaleFactor;
@@ -50,26 +56,36 @@ public class FlatDropShadowBorder
} }
public FlatDropShadowBorder( Color shadowColor ) { public FlatDropShadowBorder( Color shadowColor ) {
this( shadowColor, 4, 4, 128 ); this( shadowColor, 4, 0.5f );
} }
public FlatDropShadowBorder( Color shadowColor, int shadowSize, int cornerInset, int shadowAlpha ) { public FlatDropShadowBorder( Color shadowColor, int shadowSize, float shadowOpacity ) {
super( new Insets( 0, 0, shadowSize, shadowSize ) ); this( shadowColor, new Insets( -shadowSize, -shadowSize, shadowSize, shadowSize ), shadowOpacity );
}
public FlatDropShadowBorder( Color shadowColor, Insets shadowInsets, float shadowOpacity ) {
super( Math.max( shadowInsets.top, 0 ), Math.max( shadowInsets.left, 0 ),
Math.max( shadowInsets.bottom, 0 ), Math.max( shadowInsets.right, 0 ) );
this.shadowColor = shadowColor; this.shadowColor = shadowColor;
this.shadowSize = shadowSize; this.shadowInsets = shadowInsets;
this.cornerInset = cornerInset; this.shadowOpacity = shadowOpacity;
this.shadowAlpha = shadowAlpha;
shadowSize = Math.max(
Math.max( shadowInsets.left, shadowInsets.right ),
Math.max( shadowInsets.top, shadowInsets.bottom ) );
} }
@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( shadowSize <= 0 )
return;
HiDPIUtils.paintAtScale1x( (Graphics2D) g, x, y, width, height, this::paintImpl ); HiDPIUtils.paintAtScale1x( (Graphics2D) g, x, y, width, height, this::paintImpl );
} }
private void paintImpl( Graphics2D g, int x, int y, int width, int height, double scaleFactor ) { private void paintImpl( Graphics2D g, int x, int y, int width, int height, double scaleFactor ) {
Color shadowColor = (this.shadowColor != null) ? this.shadowColor : g.getColor(); Color shadowColor = (this.shadowColor != null) ? this.shadowColor : g.getColor();
int shadowSize = (int) Math.ceil( UIScale.scale( this.shadowSize ) * scaleFactor ); int shadowSize = scale( this.shadowSize, scaleFactor );
int cornerInset = (int) Math.ceil( UIScale.scale( this.cornerInset ) * scaleFactor );
// create and cache shadow image // create and cache shadow image
float userScaleFactor = UIScale.getUserScaleFactor(); float userScaleFactor = UIScale.getUserScaleFactor();
@@ -78,7 +94,7 @@ public class FlatDropShadowBorder
lastSystemScaleFactor != scaleFactor || lastSystemScaleFactor != scaleFactor ||
lastUserScaleFactor != userScaleFactor ) lastUserScaleFactor != userScaleFactor )
{ {
shadowImage = createShadowImage( shadowColor, shadowSize, shadowAlpha, shadowImage = createShadowImage( shadowColor, shadowSize, shadowOpacity,
(float) (scaleFactor * userScaleFactor) ); (float) (scaleFactor * userScaleFactor) );
lastShadowColor = shadowColor; lastShadowColor = shadowColor;
lastSystemScaleFactor = scaleFactor; lastSystemScaleFactor = scaleFactor;
@@ -87,55 +103,103 @@ public class FlatDropShadowBorder
/*debug /*debug
int m = shadowImage.getWidth( null ); int m = shadowImage.getWidth( null );
Color oldColor = g.getColor();
g.setColor( Color.lightGray ); g.setColor( Color.lightGray );
g.drawRect( x - m - 1, y - m - 1, m + 1, m + 1 ); g.drawRect( x - m - 1, y - m - 1, m + 1, m + 1 );
g.setColor( Color.white ); g.setColor( Color.white );
g.fillRect( x - m, y - m, m, m ); g.fillRect( x - m, y - m, m, m );
g.drawImage( shadowImage, x - m, y - m, null ); g.drawImage( shadowImage, x - m, y - m, null );
g.setColor( oldColor );
debug*/ debug*/
int x1c = x + cornerInset; int left = scale( shadowInsets.left, scaleFactor );
int y1c = y + cornerInset; int right = scale( shadowInsets.right, scaleFactor );
int x1cs = x1c + shadowSize; int top = scale( shadowInsets.top, scaleFactor );
int y1cs = y1c + shadowSize; int bottom = scale( shadowInsets.bottom, scaleFactor );
int x2s = x + width; // shadow outer coordinates
int y2s = y + height; int x1o = x - Math.min( left, 0 );
int x2 = x2s - shadowSize; int y1o = y - Math.min( top, 0 );
int y2 = y2s - shadowSize; int x2o = x + width + Math.min( right, 0 );
int y2o = y + height + Math.min( bottom, 0 );
// shadow inner coordinates
int x1i = x1o + shadowSize;
int y1i = y1o + shadowSize;
int x2i = x2o - shadowSize;
int y2i = y2o - shadowSize;
int wh = (shadowSize * 2) - 1; int wh = (shadowSize * 2) - 1;
int center = shadowSize - 1; int center = shadowSize - 1;
// left-bottom edge // left-top edge
g.drawImage( shadowImage, x1c, y2, x1cs, y2s, if( left > 0 || top > 0 ) {
0, center, shadowSize, wh, null ); g.drawImage( shadowImage, x1o, y1o, x1i, y1i,
0, 0, center, center, null );
}
// bottom shadow // top shadow
g.drawImage( shadowImage, x1cs, y2, x2, y2s, if( top > 0 ) {
center, center, center + 1, wh, null ); g.drawImage( shadowImage, x1i, y1o, x2i, y1i,
center, 0, center + 1, center, null );
// right-bottom edge }
g.drawImage( shadowImage, x2, y2, x2s, y2s,
center, center, wh, wh, null );
// right shadow
g.drawImage( shadowImage, x2, y1cs, x2s, y2,
center, center, wh, center + 1, null );
// right-top edge // right-top edge
g.drawImage( shadowImage, x2, y1c, x2s, y1cs, if( right > 0 || top > 0 ) {
center, 0, wh, shadowSize, null ); g.drawImage( shadowImage, x2i, y1o, x2o, y1i,
center, 0, wh, center, null );
}
// left shadow
if( left > 0 ) {
g.drawImage( shadowImage, x1o, y1i, x1i, y2i,
0, center, center, center + 1, null );
}
// right shadow
if( right > 0 ) {
g.drawImage( shadowImage, x2i, y1i, x2o, y2i,
center, center, wh, center + 1, null );
}
// left-bottom edge
if( left > 0 || bottom > 0 ) {
g.drawImage( shadowImage, x1o, y2i, x1i, y2o,
0, center, center, wh, null );
}
// bottom shadow
if( bottom > 0 ) {
g.drawImage( shadowImage, x1i, y2i, x2i, y2o,
center, center, center + 1, wh, null );
}
// right-bottom edge
if( right > 0 || bottom > 0 ) {
g.drawImage( shadowImage, x2i, y2i, x2o, y2o,
center, center, wh, wh, null );
}
}
private int scale( int value, double scaleFactor ) {
return (int) Math.ceil( UIScale.scale( value ) * scaleFactor );
} }
private static BufferedImage createShadowImage( Color shadowColor, int shadowSize, private static BufferedImage createShadowImage( Color shadowColor, int shadowSize,
int shadowAlpha, float scaleFactor ) float shadowOpacity, float scaleFactor )
{ {
int shadowRGB = shadowColor.getRGB() & 0xffffff; int shadowRGB = shadowColor.getRGB() & 0xffffff;
int shadowAlpha = (int) (255 * shadowOpacity);
Color startColor = new Color( shadowRGB | ((shadowAlpha & 0xff) << 24), true ); Color startColor = new Color( shadowRGB | ((shadowAlpha & 0xff) << 24), true );
Color midColor = new Color( shadowRGB | (((shadowAlpha / 2) & 0xff) << 24), true ); Color midColor = new Color( shadowRGB | (((shadowAlpha / 2) & 0xff) << 24), true );
Color endColor = new Color( shadowRGB, true ); Color endColor = new Color( shadowRGB, true );
/*debug
startColor = Color.red;
midColor = Color.green;
endColor = Color.blue;
debug*/
int wh = (shadowSize * 2) - 1; int wh = (shadowSize * 2) - 1;
int center = shadowSize - 1; int center = shadowSize - 1;

View File

@@ -112,8 +112,16 @@ public class FlatInternalFrameUI
private final Color activeBorderColor = UIManager.getColor( "InternalFrame.activeBorderColor" ); private final Color activeBorderColor = UIManager.getColor( "InternalFrame.activeBorderColor" );
private final Color inactiveBorderColor = UIManager.getColor( "InternalFrame.inactiveBorderColor" ); private final Color inactiveBorderColor = UIManager.getColor( "InternalFrame.inactiveBorderColor" );
private final int borderLineWidth = FlatUIUtils.getUIInt( "InternalFrame.borderLineWidth", 1 ); private final int borderLineWidth = FlatUIUtils.getUIInt( "InternalFrame.borderLineWidth", 1 );
private final boolean dropShadowPainted = UIManager.getBoolean( "InternalFrame.dropShadowPainted" );
private final FlatDropShadowBorder dropShadowBorder = new FlatDropShadowBorder(); private final FlatDropShadowBorder activeDropShadowBorder = new FlatDropShadowBorder(
UIManager.getColor( "InternalFrame.activeDropShadowColor" ),
UIManager.getInsets( "InternalFrame.activeDropShadowInsets" ),
FlatUIUtils.getUIFloat( "InternalFrame.activeDropShadowOpacity", 0.5f ) );
private final FlatDropShadowBorder inactiveDropShadowBorder = new FlatDropShadowBorder(
UIManager.getColor( "InternalFrame.inactiveDropShadowColor" ),
UIManager.getInsets( "InternalFrame.inactiveDropShadowInsets" ),
FlatUIUtils.getUIFloat( "InternalFrame.inactiveDropShadowOpacity", 0.5f ) );
public FlatInternalFrameBorder() { public FlatInternalFrameBorder() {
super( UIManager.getInsets( "InternalFrame.borderMargins" ) ); super( UIManager.getInsets( "InternalFrame.borderMargins" ) );
@@ -150,10 +158,17 @@ public class FlatInternalFrameUI
g2.setColor( f.isSelected() ? activeBorderColor : inactiveBorderColor ); g2.setColor( f.isSelected() ? activeBorderColor : inactiveBorderColor );
// paint drop shadow // paint drop shadow
if( dropShadowPainted ) {
FlatDropShadowBorder dropShadowBorder = f.isSelected()
? activeDropShadowBorder : inactiveDropShadowBorder;
Insets dropShadowInsets = dropShadowBorder.getBorderInsets(); Insets dropShadowInsets = dropShadowBorder.getBorderInsets();
dropShadowBorder.paintBorder( c, g2, (int) rx, (int) ry, dropShadowBorder.paintBorder( c, g2,
(int) rwidth + dropShadowInsets.right, (int) rx - dropShadowInsets.left,
(int) rheight + dropShadowInsets.bottom ); (int) ry - dropShadowInsets.top,
(int) rwidth + dropShadowInsets.left + dropShadowInsets.right,
(int) rheight + dropShadowInsets.top + dropShadowInsets.bottom );
}
// paint border // paint border
g2.fill( FlatUIUtils.createRectangle( rx, ry, rwidth, rheight, lineWidth ) ); g2.fill( FlatUIUtils.createRectangle( rx, ry, rwidth, rheight, lineWidth ) );

View File

@@ -29,6 +29,7 @@ import javax.swing.JComponent;
import javax.swing.Popup; import javax.swing.Popup;
import javax.swing.PopupFactory; import javax.swing.PopupFactory;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.border.Border; import javax.swing.border.Border;
import com.formdev.flatlaf.util.SystemInfo; import com.formdev.flatlaf.util.SystemInfo;
@@ -49,6 +50,9 @@ public class FlatPopupFactory
public Popup getPopup( Component owner, Component contents, int x, int y ) public Popup getPopup( Component owner, Component contents, int x, int y )
throws IllegalArgumentException throws IllegalArgumentException
{ {
if( !UIManager.getBoolean( "Popup.dropShadowPainted" ) && !SystemInfo.IS_MAC )
return super.getPopup( owner, contents, x, y );
// always use heavy weight popup because the drop shadow increases // always use heavy weight popup because the drop shadow increases
// the popup size and may overlap the window bounds // the popup size and may overlap the window bounds
Popup popup = getHeavyWeightPopup( owner, contents, x, y ); Popup popup = getHeavyWeightPopup( owner, contents, x, y );
@@ -129,7 +133,10 @@ public class FlatPopupFactory
parent = (JComponent) p; parent = (JComponent) p;
oldBorder = parent.getBorder(); oldBorder = parent.getBorder();
oldOpaque = parent.isOpaque(); oldOpaque = parent.isOpaque();
parent.setBorder( new FlatDropShadowBorder( null, 4, 4, 32 ) ); //TODO parent.setBorder( new FlatDropShadowBorder(
UIManager.getColor( "Popup.dropShadowColor" ),
UIManager.getInsets( "Popup.dropShadowInsets" ),
FlatUIUtils.getUIFloat( "Popup.dropShadowOpacity", 0.5f ) ) );
parent.setOpaque( false ); parent.setOpaque( false );
window = SwingUtilities.windowForComponent( contents ); window = SwingUtilities.windowForComponent( contents );

View File

@@ -158,6 +158,9 @@ InternalFrame.closePressedBackground=darken(Actions.Red,10%,lazy)
InternalFrame.closeHoverForeground=#fff InternalFrame.closeHoverForeground=#fff
InternalFrame.closePressedForeground=#fff InternalFrame.closePressedForeground=#fff
InternalFrame.activeDropShadowOpacity=0.5
InternalFrame.inactiveDropShadowOpacity=0.75
#---- List ---- #---- List ----
@@ -187,6 +190,12 @@ MenuItemCheckBox.icon.disabledCheckmarkColor=#606060
PasswordField.capsLockIconColor=#ffffff64 PasswordField.capsLockIconColor=#ffffff64
#---- Popup ----
Popup.dropShadowColor=#000
Popup.dropShadowOpacity=0.25
#---- PopupMenu ---- #---- PopupMenu ----
PopupMenu.borderColor=#5e5e5e PopupMenu.borderColor=#5e5e5e

View File

@@ -261,6 +261,13 @@ InternalFrame.maximizeIcon=com.formdev.flatlaf.icons.FlatInternalFrameMaximizeIc
InternalFrame.minimizeIcon=com.formdev.flatlaf.icons.FlatInternalFrameMinimizeIcon InternalFrame.minimizeIcon=com.formdev.flatlaf.icons.FlatInternalFrameMinimizeIcon
InternalFrame.windowBindings=null InternalFrame.windowBindings=null
# drop shadow
InternalFrame.dropShadowPainted=true
InternalFrame.activeDropShadowColor=null
InternalFrame.activeDropShadowInsets=5,5,6,6
InternalFrame.inactiveDropShadowColor=null
InternalFrame.inactiveDropShadowInsets=3,3,4,4
#---- InternalFrameTitlePane ---- #---- InternalFrameTitlePane ----
@@ -362,6 +369,12 @@ PasswordField.echoChar=\u2022
PasswordField.capsLockIcon=com.formdev.flatlaf.icons.FlatCapsLockIcon PasswordField.capsLockIcon=com.formdev.flatlaf.icons.FlatCapsLockIcon
#---- Popup ----
Popup.dropShadowPainted=true
Popup.dropShadowInsets=-4,-4,4,4
#---- PopupMenu ---- #---- PopupMenu ----
PopupMenu.border=com.formdev.flatlaf.ui.FlatPopupMenuBorder PopupMenu.border=com.formdev.flatlaf.ui.FlatPopupMenuBorder

View File

@@ -165,6 +165,9 @@ InternalFrame.closePressedBackground=darken(Actions.Red,10%,lazy)
InternalFrame.closeHoverForeground=#fff InternalFrame.closeHoverForeground=#fff
InternalFrame.closePressedForeground=#fff InternalFrame.closePressedForeground=#fff
InternalFrame.activeDropShadowOpacity=0.25
InternalFrame.inactiveDropShadowOpacity=0.5
#---- List ---- #---- List ----
@@ -194,6 +197,12 @@ MenuItemCheckBox.icon.disabledCheckmarkColor=#ABABAB
PasswordField.capsLockIconColor=#00000064 PasswordField.capsLockIconColor=#00000064
#---- Popup ----
Popup.dropShadowColor=#000
Popup.dropShadowOpacity=0.15
#---- PopupMenu ---- #---- PopupMenu ----
PopupMenu.borderColor=#adadad PopupMenu.borderColor=#adadad

View File

@@ -328,6 +328,8 @@ HyperlinkUI com.formdev.flatlaf.swingx.ui.FlatHyperlinkUI
#---- InternalFrame ---- #---- InternalFrame ----
InternalFrame.activeBorderColor #2b2d2e javax.swing.plaf.ColorUIResource [UI] InternalFrame.activeBorderColor #2b2d2e javax.swing.plaf.ColorUIResource [UI]
InternalFrame.activeDropShadowInsets 5,5,6,6 javax.swing.plaf.InsetsUIResource [UI]
InternalFrame.activeDropShadowOpacity 0.5
InternalFrame.activeTitleBackground #242526 javax.swing.plaf.ColorUIResource [UI] InternalFrame.activeTitleBackground #242526 javax.swing.plaf.ColorUIResource [UI]
InternalFrame.activeTitleForeground #bbbbbb javax.swing.plaf.ColorUIResource [UI] InternalFrame.activeTitleForeground #bbbbbb javax.swing.plaf.ColorUIResource [UI]
InternalFrame.border [lazy] 6,6,6,6 false com.formdev.flatlaf.ui.FlatInternalFrameUI$FlatInternalFrameBorder [UI] InternalFrame.border [lazy] 6,6,6,6 false com.formdev.flatlaf.ui.FlatInternalFrameUI$FlatInternalFrameBorder [UI]
@@ -346,9 +348,12 @@ InternalFrame.closeHoverForeground #ffffff javax.swing.plaf.ColorUIResource [
InternalFrame.closeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameCloseIcon [UI] InternalFrame.closeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameCloseIcon [UI]
InternalFrame.closePressedBackground [lazy] #ad3b37 javax.swing.plaf.ColorUIResource [UI] InternalFrame.closePressedBackground [lazy] #ad3b37 javax.swing.plaf.ColorUIResource [UI]
InternalFrame.closePressedForeground #ffffff javax.swing.plaf.ColorUIResource [UI] InternalFrame.closePressedForeground #ffffff javax.swing.plaf.ColorUIResource [UI]
InternalFrame.dropShadowPainted true
InternalFrame.icon [lazy] 16,16 sun.swing.ImageIconUIResource [UI] (sun.awt.image.ToolkitImage) InternalFrame.icon [lazy] 16,16 sun.swing.ImageIconUIResource [UI] (sun.awt.image.ToolkitImage)
InternalFrame.iconifyIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameIconifyIcon [UI] InternalFrame.iconifyIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameIconifyIcon [UI]
InternalFrame.inactiveBorderColor #353739 javax.swing.plaf.ColorUIResource [UI] InternalFrame.inactiveBorderColor #353739 javax.swing.plaf.ColorUIResource [UI]
InternalFrame.inactiveDropShadowInsets 3,3,4,4 javax.swing.plaf.InsetsUIResource [UI]
InternalFrame.inactiveDropShadowOpacity 0.75
InternalFrame.inactiveTitleBackground #303234 javax.swing.plaf.ColorUIResource [UI] InternalFrame.inactiveTitleBackground #303234 javax.swing.plaf.ColorUIResource [UI]
InternalFrame.inactiveTitleForeground #777777 javax.swing.plaf.ColorUIResource [UI] InternalFrame.inactiveTitleForeground #777777 javax.swing.plaf.ColorUIResource [UI]
InternalFrame.maximizeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameMaximizeIcon [UI] InternalFrame.maximizeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameMaximizeIcon [UI]
@@ -630,6 +635,14 @@ PasswordField.selectionForeground #bbbbbb javax.swing.plaf.ColorUIResource [U
PasswordFieldUI com.formdev.flatlaf.ui.FlatPasswordFieldUI PasswordFieldUI com.formdev.flatlaf.ui.FlatPasswordFieldUI
#---- Popup ----
Popup.dropShadowColor #000000 javax.swing.plaf.ColorUIResource [UI]
Popup.dropShadowInsets -4,-4,4,4 javax.swing.plaf.InsetsUIResource [UI]
Popup.dropShadowOpacity 0.25
Popup.dropShadowPainted true
#---- PopupMenu ---- #---- PopupMenu ----
PopupMenu.background #303234 javax.swing.plaf.ColorUIResource [UI] PopupMenu.background #303234 javax.swing.plaf.ColorUIResource [UI]
@@ -1187,6 +1200,15 @@ inactiveCaptionBorder #393c3d javax.swing.plaf.ColorUIResource [UI]
inactiveCaptionText #bbbbbb javax.swing.plaf.ColorUIResource [UI] inactiveCaptionText #bbbbbb javax.swing.plaf.ColorUIResource [UI]
info #1e2123 javax.swing.plaf.ColorUIResource [UI] info #1e2123 javax.swing.plaf.ColorUIResource [UI]
infoText #bbbbbb javax.swing.plaf.ColorUIResource [UI] infoText #bbbbbb javax.swing.plaf.ColorUIResource [UI]
#---- laf ----
laf.scaleFactor [active] 1.0
#---- ----
menu #3c3f41 javax.swing.plaf.ColorUIResource [UI] menu #3c3f41 javax.swing.plaf.ColorUIResource [UI]
menuText #bbbbbb javax.swing.plaf.ColorUIResource [UI] menuText #bbbbbb javax.swing.plaf.ColorUIResource [UI]
scrollbar #3f4244 javax.swing.plaf.ColorUIResource [UI] scrollbar #3f4244 javax.swing.plaf.ColorUIResource [UI]

View File

@@ -327,6 +327,8 @@ HyperlinkUI com.formdev.flatlaf.swingx.ui.FlatHyperlinkUI
#---- InternalFrame ---- #---- InternalFrame ----
InternalFrame.activeBorderColor #2b2d2e javax.swing.plaf.ColorUIResource [UI] InternalFrame.activeBorderColor #2b2d2e javax.swing.plaf.ColorUIResource [UI]
InternalFrame.activeDropShadowInsets 5,5,6,6 javax.swing.plaf.InsetsUIResource [UI]
InternalFrame.activeDropShadowOpacity 0.5
InternalFrame.activeTitleBackground #242526 javax.swing.plaf.ColorUIResource [UI] InternalFrame.activeTitleBackground #242526 javax.swing.plaf.ColorUIResource [UI]
InternalFrame.activeTitleForeground #bbbbbb javax.swing.plaf.ColorUIResource [UI] InternalFrame.activeTitleForeground #bbbbbb javax.swing.plaf.ColorUIResource [UI]
InternalFrame.border [lazy] 6,6,6,6 false com.formdev.flatlaf.ui.FlatInternalFrameUI$FlatInternalFrameBorder [UI] InternalFrame.border [lazy] 6,6,6,6 false com.formdev.flatlaf.ui.FlatInternalFrameUI$FlatInternalFrameBorder [UI]
@@ -345,9 +347,12 @@ InternalFrame.closeHoverForeground #ffffff javax.swing.plaf.ColorUIResource [
InternalFrame.closeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameCloseIcon [UI] InternalFrame.closeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameCloseIcon [UI]
InternalFrame.closePressedBackground [lazy] #ad3b37 javax.swing.plaf.ColorUIResource [UI] InternalFrame.closePressedBackground [lazy] #ad3b37 javax.swing.plaf.ColorUIResource [UI]
InternalFrame.closePressedForeground #ffffff javax.swing.plaf.ColorUIResource [UI] InternalFrame.closePressedForeground #ffffff javax.swing.plaf.ColorUIResource [UI]
InternalFrame.dropShadowPainted true
InternalFrame.icon [lazy] 16,16 sun.swing.ImageIconUIResource [UI] (sun.awt.image.ToolkitImage) InternalFrame.icon [lazy] 16,16 sun.swing.ImageIconUIResource [UI] (sun.awt.image.ToolkitImage)
InternalFrame.iconifyIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameIconifyIcon [UI] InternalFrame.iconifyIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameIconifyIcon [UI]
InternalFrame.inactiveBorderColor #353739 javax.swing.plaf.ColorUIResource [UI] InternalFrame.inactiveBorderColor #353739 javax.swing.plaf.ColorUIResource [UI]
InternalFrame.inactiveDropShadowInsets 3,3,4,4 javax.swing.plaf.InsetsUIResource [UI]
InternalFrame.inactiveDropShadowOpacity 0.75
InternalFrame.inactiveTitleBackground #303234 javax.swing.plaf.ColorUIResource [UI] InternalFrame.inactiveTitleBackground #303234 javax.swing.plaf.ColorUIResource [UI]
InternalFrame.inactiveTitleForeground #777777 javax.swing.plaf.ColorUIResource [UI] InternalFrame.inactiveTitleForeground #777777 javax.swing.plaf.ColorUIResource [UI]
InternalFrame.maximizeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameMaximizeIcon [UI] InternalFrame.maximizeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameMaximizeIcon [UI]
@@ -628,6 +633,14 @@ PasswordField.selectionForeground #bbbbbb javax.swing.plaf.ColorUIResource [U
PasswordFieldUI com.formdev.flatlaf.ui.FlatPasswordFieldUI PasswordFieldUI com.formdev.flatlaf.ui.FlatPasswordFieldUI
#---- Popup ----
Popup.dropShadowColor #000000 javax.swing.plaf.ColorUIResource [UI]
Popup.dropShadowInsets -4,-4,4,4 javax.swing.plaf.InsetsUIResource [UI]
Popup.dropShadowOpacity 0.25
Popup.dropShadowPainted true
#---- PopupMenu ---- #---- PopupMenu ----
PopupMenu.background #303234 javax.swing.plaf.ColorUIResource [UI] PopupMenu.background #303234 javax.swing.plaf.ColorUIResource [UI]
@@ -1185,6 +1198,15 @@ inactiveCaptionBorder #393c3d javax.swing.plaf.ColorUIResource [UI]
inactiveCaptionText #bbbbbb javax.swing.plaf.ColorUIResource [UI] inactiveCaptionText #bbbbbb javax.swing.plaf.ColorUIResource [UI]
info #1e2123 javax.swing.plaf.ColorUIResource [UI] info #1e2123 javax.swing.plaf.ColorUIResource [UI]
infoText #bbbbbb javax.swing.plaf.ColorUIResource [UI] infoText #bbbbbb javax.swing.plaf.ColorUIResource [UI]
#---- laf ----
laf.scaleFactor [active] 1.0
#---- ----
menu #3c3f41 javax.swing.plaf.ColorUIResource [UI] menu #3c3f41 javax.swing.plaf.ColorUIResource [UI]
menuText #bbbbbb javax.swing.plaf.ColorUIResource [UI] menuText #bbbbbb javax.swing.plaf.ColorUIResource [UI]
scrollbar #3f4244 javax.swing.plaf.ColorUIResource [UI] scrollbar #3f4244 javax.swing.plaf.ColorUIResource [UI]

View File

@@ -330,6 +330,8 @@ HyperlinkUI com.formdev.flatlaf.swingx.ui.FlatHyperlinkUI
#---- InternalFrame ---- #---- InternalFrame ----
InternalFrame.activeBorderColor #919191 javax.swing.plaf.ColorUIResource [UI] InternalFrame.activeBorderColor #919191 javax.swing.plaf.ColorUIResource [UI]
InternalFrame.activeDropShadowInsets 5,5,6,6 javax.swing.plaf.InsetsUIResource [UI]
InternalFrame.activeDropShadowOpacity 0.25
InternalFrame.activeTitleBackground #ffffff javax.swing.plaf.ColorUIResource [UI] InternalFrame.activeTitleBackground #ffffff javax.swing.plaf.ColorUIResource [UI]
InternalFrame.activeTitleForeground #000000 javax.swing.plaf.ColorUIResource [UI] InternalFrame.activeTitleForeground #000000 javax.swing.plaf.ColorUIResource [UI]
InternalFrame.border [lazy] 6,6,6,6 false com.formdev.flatlaf.ui.FlatInternalFrameUI$FlatInternalFrameBorder [UI] InternalFrame.border [lazy] 6,6,6,6 false com.formdev.flatlaf.ui.FlatInternalFrameUI$FlatInternalFrameBorder [UI]
@@ -348,9 +350,12 @@ InternalFrame.closeHoverForeground #ffffff javax.swing.plaf.ColorUIResource [
InternalFrame.closeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameCloseIcon [UI] InternalFrame.closeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameCloseIcon [UI]
InternalFrame.closePressedBackground [lazy] #d22e38 javax.swing.plaf.ColorUIResource [UI] InternalFrame.closePressedBackground [lazy] #d22e38 javax.swing.plaf.ColorUIResource [UI]
InternalFrame.closePressedForeground #ffffff javax.swing.plaf.ColorUIResource [UI] InternalFrame.closePressedForeground #ffffff javax.swing.plaf.ColorUIResource [UI]
InternalFrame.dropShadowPainted true
InternalFrame.icon [lazy] 16,16 sun.swing.ImageIconUIResource [UI] (sun.awt.image.ToolkitImage) InternalFrame.icon [lazy] 16,16 sun.swing.ImageIconUIResource [UI] (sun.awt.image.ToolkitImage)
InternalFrame.iconifyIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameIconifyIcon [UI] InternalFrame.iconifyIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameIconifyIcon [UI]
InternalFrame.inactiveBorderColor #c4c4c4 javax.swing.plaf.ColorUIResource [UI] InternalFrame.inactiveBorderColor #c4c4c4 javax.swing.plaf.ColorUIResource [UI]
InternalFrame.inactiveDropShadowInsets 3,3,4,4 javax.swing.plaf.InsetsUIResource [UI]
InternalFrame.inactiveDropShadowOpacity 0.5
InternalFrame.inactiveTitleBackground #fafafa javax.swing.plaf.ColorUIResource [UI] InternalFrame.inactiveTitleBackground #fafafa javax.swing.plaf.ColorUIResource [UI]
InternalFrame.inactiveTitleForeground #8c8c8c javax.swing.plaf.ColorUIResource [UI] InternalFrame.inactiveTitleForeground #8c8c8c javax.swing.plaf.ColorUIResource [UI]
InternalFrame.maximizeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameMaximizeIcon [UI] InternalFrame.maximizeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameMaximizeIcon [UI]
@@ -632,6 +637,14 @@ PasswordField.selectionForeground #ffffff javax.swing.plaf.ColorUIResource [U
PasswordFieldUI com.formdev.flatlaf.ui.FlatPasswordFieldUI PasswordFieldUI com.formdev.flatlaf.ui.FlatPasswordFieldUI
#---- Popup ----
Popup.dropShadowColor #000000 javax.swing.plaf.ColorUIResource [UI]
Popup.dropShadowInsets -4,-4,4,4 javax.swing.plaf.InsetsUIResource [UI]
Popup.dropShadowOpacity 0.15
Popup.dropShadowPainted true
#---- PopupMenu ---- #---- PopupMenu ----
PopupMenu.background #ffffff javax.swing.plaf.ColorUIResource [UI] PopupMenu.background #ffffff javax.swing.plaf.ColorUIResource [UI]
@@ -1189,6 +1202,15 @@ inactiveCaptionBorder #bfcddb javax.swing.plaf.ColorUIResource [UI]
inactiveCaptionText #000000 javax.swing.plaf.ColorUIResource [UI] inactiveCaptionText #000000 javax.swing.plaf.ColorUIResource [UI]
info #fafafa javax.swing.plaf.ColorUIResource [UI] info #fafafa javax.swing.plaf.ColorUIResource [UI]
infoText #000000 javax.swing.plaf.ColorUIResource [UI] infoText #000000 javax.swing.plaf.ColorUIResource [UI]
#---- laf ----
laf.scaleFactor [active] 1.0
#---- ----
menu #f2f2f2 javax.swing.plaf.ColorUIResource [UI] menu #f2f2f2 javax.swing.plaf.ColorUIResource [UI]
menuText #000000 javax.swing.plaf.ColorUIResource [UI] menuText #000000 javax.swing.plaf.ColorUIResource [UI]
scrollbar #f5f5f5 javax.swing.plaf.ColorUIResource [UI] scrollbar #f5f5f5 javax.swing.plaf.ColorUIResource [UI]

View File

@@ -329,6 +329,8 @@ HyperlinkUI com.formdev.flatlaf.swingx.ui.FlatHyperlinkUI
#---- InternalFrame ---- #---- InternalFrame ----
InternalFrame.activeBorderColor #919191 javax.swing.plaf.ColorUIResource [UI] InternalFrame.activeBorderColor #919191 javax.swing.plaf.ColorUIResource [UI]
InternalFrame.activeDropShadowInsets 5,5,6,6 javax.swing.plaf.InsetsUIResource [UI]
InternalFrame.activeDropShadowOpacity 0.25
InternalFrame.activeTitleBackground #ffffff javax.swing.plaf.ColorUIResource [UI] InternalFrame.activeTitleBackground #ffffff javax.swing.plaf.ColorUIResource [UI]
InternalFrame.activeTitleForeground #000000 javax.swing.plaf.ColorUIResource [UI] InternalFrame.activeTitleForeground #000000 javax.swing.plaf.ColorUIResource [UI]
InternalFrame.border [lazy] 6,6,6,6 false com.formdev.flatlaf.ui.FlatInternalFrameUI$FlatInternalFrameBorder [UI] InternalFrame.border [lazy] 6,6,6,6 false com.formdev.flatlaf.ui.FlatInternalFrameUI$FlatInternalFrameBorder [UI]
@@ -347,9 +349,12 @@ InternalFrame.closeHoverForeground #ffffff javax.swing.plaf.ColorUIResource [
InternalFrame.closeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameCloseIcon [UI] InternalFrame.closeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameCloseIcon [UI]
InternalFrame.closePressedBackground [lazy] #d22e38 javax.swing.plaf.ColorUIResource [UI] InternalFrame.closePressedBackground [lazy] #d22e38 javax.swing.plaf.ColorUIResource [UI]
InternalFrame.closePressedForeground #ffffff javax.swing.plaf.ColorUIResource [UI] InternalFrame.closePressedForeground #ffffff javax.swing.plaf.ColorUIResource [UI]
InternalFrame.dropShadowPainted true
InternalFrame.icon [lazy] 16,16 sun.swing.ImageIconUIResource [UI] (sun.awt.image.ToolkitImage) InternalFrame.icon [lazy] 16,16 sun.swing.ImageIconUIResource [UI] (sun.awt.image.ToolkitImage)
InternalFrame.iconifyIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameIconifyIcon [UI] InternalFrame.iconifyIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameIconifyIcon [UI]
InternalFrame.inactiveBorderColor #c4c4c4 javax.swing.plaf.ColorUIResource [UI] InternalFrame.inactiveBorderColor #c4c4c4 javax.swing.plaf.ColorUIResource [UI]
InternalFrame.inactiveDropShadowInsets 3,3,4,4 javax.swing.plaf.InsetsUIResource [UI]
InternalFrame.inactiveDropShadowOpacity 0.5
InternalFrame.inactiveTitleBackground #fafafa javax.swing.plaf.ColorUIResource [UI] InternalFrame.inactiveTitleBackground #fafafa javax.swing.plaf.ColorUIResource [UI]
InternalFrame.inactiveTitleForeground #8c8c8c javax.swing.plaf.ColorUIResource [UI] InternalFrame.inactiveTitleForeground #8c8c8c javax.swing.plaf.ColorUIResource [UI]
InternalFrame.maximizeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameMaximizeIcon [UI] InternalFrame.maximizeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameMaximizeIcon [UI]
@@ -630,6 +635,14 @@ PasswordField.selectionForeground #ffffff javax.swing.plaf.ColorUIResource [U
PasswordFieldUI com.formdev.flatlaf.ui.FlatPasswordFieldUI PasswordFieldUI com.formdev.flatlaf.ui.FlatPasswordFieldUI
#---- Popup ----
Popup.dropShadowColor #000000 javax.swing.plaf.ColorUIResource [UI]
Popup.dropShadowInsets -4,-4,4,4 javax.swing.plaf.InsetsUIResource [UI]
Popup.dropShadowOpacity 0.15
Popup.dropShadowPainted true
#---- PopupMenu ---- #---- PopupMenu ----
PopupMenu.background #ffffff javax.swing.plaf.ColorUIResource [UI] PopupMenu.background #ffffff javax.swing.plaf.ColorUIResource [UI]
@@ -1187,6 +1200,15 @@ inactiveCaptionBorder #bfcddb javax.swing.plaf.ColorUIResource [UI]
inactiveCaptionText #000000 javax.swing.plaf.ColorUIResource [UI] inactiveCaptionText #000000 javax.swing.plaf.ColorUIResource [UI]
info #fafafa javax.swing.plaf.ColorUIResource [UI] info #fafafa javax.swing.plaf.ColorUIResource [UI]
infoText #000000 javax.swing.plaf.ColorUIResource [UI] infoText #000000 javax.swing.plaf.ColorUIResource [UI]
#---- laf ----
laf.scaleFactor [active] 1.0
#---- ----
menu #f2f2f2 javax.swing.plaf.ColorUIResource [UI] menu #f2f2f2 javax.swing.plaf.ColorUIResource [UI]
menuText #000000 javax.swing.plaf.ColorUIResource [UI] menuText #000000 javax.swing.plaf.ColorUIResource [UI]
scrollbar #f5f5f5 javax.swing.plaf.ColorUIResource [UI] scrollbar #f5f5f5 javax.swing.plaf.ColorUIResource [UI]