mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-10 22:17:13 -06:00
Button: default button
This commit is contained in:
@@ -51,10 +51,11 @@ public class FlatButtonBorder
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Paint getBorderColor( Component c ) {
|
private Paint getBorderColor( Component c ) {
|
||||||
if( c.isEnabled() ) {
|
if( c.isEnabled() ) {
|
||||||
Color startColor = UIManager.getColor( "Button.startBorderColor" );
|
boolean def = FlatButtonUI.isDefaultButton( c );
|
||||||
Color endColor = UIManager.getColor( "Button.endBorderColor" );
|
Color startColor = UIManager.getColor( def ? "Button.default.startBorderColor" : "Button.startBorderColor" );
|
||||||
|
Color endColor = UIManager.getColor( def ? "Button.default.endBorderColor" : "Button.endBorderColor" );
|
||||||
return (startColor.equals( endColor ) )
|
return (startColor.equals( endColor ) )
|
||||||
? startColor
|
? startColor
|
||||||
: new GradientPaint( 0, getFocusWidth(), startColor,
|
: new GradientPaint( 0, getFocusWidth(), startColor,
|
||||||
|
|||||||
@@ -16,11 +16,14 @@
|
|||||||
|
|
||||||
package com.formdev.flatlaf.ui;
|
package com.formdev.flatlaf.ui;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Component;
|
||||||
import java.awt.FontMetrics;
|
import java.awt.FontMetrics;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Rectangle;
|
import java.awt.Rectangle;
|
||||||
import javax.swing.AbstractButton;
|
import javax.swing.AbstractButton;
|
||||||
|
import javax.swing.JButton;
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
import javax.swing.plaf.ComponentUI;
|
import javax.swing.plaf.ComponentUI;
|
||||||
@@ -43,6 +46,10 @@ public class FlatButtonUI
|
|||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static boolean isDefaultButton( Component c ) {
|
||||||
|
return c instanceof JButton && ((JButton)c).isDefaultButton();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update( Graphics g, JComponent c ) {
|
public void update( Graphics g, JComponent c ) {
|
||||||
if( c.isOpaque() ) {
|
if( c.isOpaque() ) {
|
||||||
@@ -57,7 +64,7 @@ public class FlatButtonUI
|
|||||||
float focusWidth = 2;
|
float focusWidth = 2;
|
||||||
float arc = 6;
|
float arc = 6;
|
||||||
|
|
||||||
g2.setColor( c.getBackground() );
|
g2.setColor( getBackground( c ) );
|
||||||
FlatUIUtils.fillRoundRectangle( g2, 0, 0, c.getWidth(), c.getHeight(), focusWidth, arc );
|
FlatUIUtils.fillRoundRectangle( g2, 0, 0, c.getWidth(), c.getHeight(), focusWidth, arc );
|
||||||
} finally {
|
} finally {
|
||||||
g2.dispose();
|
g2.dispose();
|
||||||
@@ -71,16 +78,22 @@ public class FlatButtonUI
|
|||||||
@Override
|
@Override
|
||||||
protected void paintText( Graphics g, JComponent c, Rectangle textRect, String text ) {
|
protected void paintText( Graphics g, JComponent c, Rectangle textRect, String text ) {
|
||||||
AbstractButton b = (AbstractButton) c;
|
AbstractButton b = (AbstractButton) c;
|
||||||
if( b.getModel().isEnabled() )
|
FontMetrics fm = SwingUtilities2.getFontMetrics( c, g );
|
||||||
super.paintText( g, c, textRect, text );
|
int mnemonicIndex = b.getDisplayedMnemonicIndex();
|
||||||
else {
|
|
||||||
// paint disabled text
|
g.setColor( b.getModel().isEnabled() ? getForeground( c ) : UIManager.getColor( "Button.disabledText" ) );
|
||||||
FontMetrics fm = SwingUtilities2.getFontMetrics( c, g );
|
SwingUtilities2.drawStringUnderlineCharAt( c, g, text, mnemonicIndex,
|
||||||
int mnemonicIndex = b.getDisplayedMnemonicIndex();
|
textRect.x + getTextShiftOffset(),
|
||||||
g.setColor( UIManager.getColor( "Button.disabledText" ) );
|
textRect.y + fm.getAscent() + getTextShiftOffset() );
|
||||||
SwingUtilities2.drawStringUnderlineCharAt( c, g, text, mnemonicIndex,
|
}
|
||||||
textRect.x + getTextShiftOffset(),
|
|
||||||
textRect.y + fm.getAscent() + getTextShiftOffset() );
|
private Color getBackground( Component c ) {
|
||||||
}
|
boolean def = FlatButtonUI.isDefaultButton( c );
|
||||||
|
return def ? UIManager.getColor( "Button.default.background" ) : c.getBackground();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Color getForeground( Component c ) {
|
||||||
|
boolean def = FlatButtonUI.isDefaultButton( c );
|
||||||
|
return def ? UIManager.getColor( "Button.default.foreground" ) : c.getForeground();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,6 +51,11 @@ Button.startBorderColor=5e6060
|
|||||||
Button.endBorderColor=5e6060
|
Button.endBorderColor=5e6060
|
||||||
Button.disabledBorderColor=5e6060
|
Button.disabledBorderColor=5e6060
|
||||||
|
|
||||||
|
Button.default.background=365880
|
||||||
|
Button.default.foreground=bbbbbb
|
||||||
|
Button.default.startBorderColor=4c708c
|
||||||
|
Button.default.endBorderColor=4c708c
|
||||||
|
|
||||||
|
|
||||||
#---- Label ----
|
#---- Label ----
|
||||||
|
|
||||||
|
|||||||
@@ -51,6 +51,11 @@ Button.startBorderColor=bfbfbf
|
|||||||
Button.endBorderColor=b3b3b3
|
Button.endBorderColor=b3b3b3
|
||||||
Button.disabledBorderColor=cfcfcf
|
Button.disabledBorderColor=cfcfcf
|
||||||
|
|
||||||
|
Button.default.background=4A86C7
|
||||||
|
Button.default.foreground=f0f0f0
|
||||||
|
Button.default.startBorderColor=4779ba
|
||||||
|
Button.default.endBorderColor=3167ad
|
||||||
|
|
||||||
|
|
||||||
#---- Label ----
|
#---- Label ----
|
||||||
|
|
||||||
|
|||||||
@@ -55,12 +55,13 @@ public class FlatComponentsTest
|
|||||||
JButton button2 = new JButton();
|
JButton button2 = new JButton();
|
||||||
JButton button3 = new JButton();
|
JButton button3 = new JButton();
|
||||||
JButton button4 = new JButton();
|
JButton button4 = new JButton();
|
||||||
|
FlatComponentsTest.TestDefaultButton button5 = new FlatComponentsTest.TestDefaultButton();
|
||||||
|
|
||||||
//======== this ========
|
//======== this ========
|
||||||
setLayout(new GridBagLayout());
|
setLayout(new GridBagLayout());
|
||||||
((GridBagLayout)getLayout()).columnWidths = new int[] {0, 0, 0, 0, 0, 0};
|
((GridBagLayout)getLayout()).columnWidths = new int[] {0, 0, 0, 0, 0, 0, 0};
|
||||||
((GridBagLayout)getLayout()).rowHeights = new int[] {0, 0, 0};
|
((GridBagLayout)getLayout()).rowHeights = new int[] {0, 0, 0};
|
||||||
((GridBagLayout)getLayout()).columnWeights = new double[] {0.0, 0.0, 0.0, 0.0, 0.0, 1.0E-4};
|
((GridBagLayout)getLayout()).columnWeights = new double[] {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0E-4};
|
||||||
((GridBagLayout)getLayout()).rowWeights = new double[] {0.0, 0.0, 1.0E-4};
|
((GridBagLayout)getLayout()).rowWeights = new double[] {0.0, 0.0, 1.0E-4};
|
||||||
|
|
||||||
//---- labelLabel ----
|
//---- labelLabel ----
|
||||||
@@ -117,6 +118,13 @@ public class FlatComponentsTest
|
|||||||
button4.setSelected(true);
|
button4.setSelected(true);
|
||||||
button4.setEnabled(false);
|
button4.setEnabled(false);
|
||||||
add(button4, new GridBagConstraints(4, 1, 1, 1, 0.0, 0.0,
|
add(button4, new GridBagConstraints(4, 1, 1, 1, 0.0, 0.0,
|
||||||
|
GridBagConstraints.CENTER, GridBagConstraints.BOTH,
|
||||||
|
new Insets(0, 0, 0, 5), 0, 0));
|
||||||
|
|
||||||
|
//---- button5 ----
|
||||||
|
button5.setText("default");
|
||||||
|
button5.setDisplayedMnemonicIndex(0);
|
||||||
|
add(button5, new GridBagConstraints(5, 1, 1, 1, 0.0, 0.0,
|
||||||
GridBagConstraints.CENTER, GridBagConstraints.BOTH,
|
GridBagConstraints.CENTER, GridBagConstraints.BOTH,
|
||||||
new Insets(0, 0, 0, 0), 0, 0));
|
new Insets(0, 0, 0, 0), 0, 0));
|
||||||
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
||||||
@@ -124,4 +132,15 @@ public class FlatComponentsTest
|
|||||||
|
|
||||||
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
|
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
|
||||||
// JFormDesigner - End of variables declaration //GEN-END:variables
|
// JFormDesigner - End of variables declaration //GEN-END:variables
|
||||||
|
|
||||||
|
//---- class TestDefaultButton --------------------------------------------
|
||||||
|
|
||||||
|
private static class TestDefaultButton
|
||||||
|
extends JButton
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean isDefaultButton() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ new FormModel {
|
|||||||
"JavaCodeGenerator.defaultVariableLocal": true
|
"JavaCodeGenerator.defaultVariableLocal": true
|
||||||
}
|
}
|
||||||
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.GridBagLayout ) {
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.GridBagLayout ) {
|
||||||
"$columnSpecs": "0, 0, 0, 0, 0"
|
"$columnSpecs": "0, 0, 0, 0, 0, 0"
|
||||||
"$rowSpecs": "0, 0"
|
"$rowSpecs": "0, 0"
|
||||||
"$hGap": 5
|
"$hGap": 5
|
||||||
"$vGap": 5
|
"$vGap": 5
|
||||||
@@ -74,6 +74,14 @@ new FormModel {
|
|||||||
"gridx": 4
|
"gridx": 4
|
||||||
"gridy": 1
|
"gridy": 1
|
||||||
} )
|
} )
|
||||||
|
add( new FormComponent( "com.formdev.flatlaf.FlatComponentsTest$TestDefaultButton" ) {
|
||||||
|
name: "button5"
|
||||||
|
"text": "default"
|
||||||
|
"displayedMnemonicIndex": 0
|
||||||
|
}, new FormLayoutConstraints( class com.jformdesigner.runtime.GridBagConstraintsEx ) {
|
||||||
|
"gridx": 5
|
||||||
|
"gridy": 1
|
||||||
|
} )
|
||||||
}, new FormLayoutConstraints( null ) {
|
}, new FormLayoutConstraints( null ) {
|
||||||
"location": new java.awt.Point( 0, 0 )
|
"location": new java.awt.Point( 0, 0 )
|
||||||
"size": new java.awt.Dimension( 580, 300 )
|
"size": new java.awt.Dimension( 580, 300 )
|
||||||
|
|||||||
@@ -29,6 +29,11 @@ Button.startBorderColor=ff0000
|
|||||||
Button.endBorderColor=0000ff
|
Button.endBorderColor=0000ff
|
||||||
Button.disabledBorderColor=000088
|
Button.disabledBorderColor=000088
|
||||||
|
|
||||||
|
Button.default.background=dddddd
|
||||||
|
Button.default.foreground=880000
|
||||||
|
Button.default.startBorderColor=ff0000
|
||||||
|
Button.default.endBorderColor=ff0000
|
||||||
|
|
||||||
|
|
||||||
#---- Label ----
|
#---- Label ----
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user