diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatSearchWithHistoryIcon.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatSearchWithHistoryIcon.java
index 262bb8fc..d8a4e00b 100644
--- a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatSearchWithHistoryIcon.java
+++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatSearchWithHistoryIcon.java
@@ -30,6 +30,12 @@ public class FlatSearchWithHistoryIcon
extends FlatSearchIcon
{
public FlatSearchWithHistoryIcon() {
+ this( false );
+ }
+
+ /** @since 2 */
+ public FlatSearchWithHistoryIcon( boolean ignoreButtonState ) {
+ super( ignoreButtonState );
}
@Override
diff --git a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/BasicComponentsPanel.java b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/BasicComponentsPanel.java
index 02455ce9..dc9e05e3 100644
--- a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/BasicComponentsPanel.java
+++ b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/BasicComponentsPanel.java
@@ -22,6 +22,7 @@ import javax.swing.text.DefaultEditorKit;
import com.formdev.flatlaf.FlatClientProperties;
import com.formdev.flatlaf.extras.FlatSVGIcon;
import com.formdev.flatlaf.icons.FlatSearchIcon;
+import com.formdev.flatlaf.icons.FlatSearchWithHistoryIcon;
import net.miginfocom.layout.AC;
import net.miginfocom.layout.BoundSize;
import net.miginfocom.layout.ConstraintParser;
@@ -36,6 +37,42 @@ class BasicComponentsPanel
{
BasicComponentsPanel() {
initComponents();
+
+ // search history button
+ JButton searchHistoryButton = new JButton( new FlatSearchWithHistoryIcon( true ) );
+ searchHistoryButton.setToolTipText( "Search History" );
+ searchHistoryButton.addActionListener( e -> {
+ JPopupMenu popupMenu = new JPopupMenu();
+ popupMenu.add( "(empty)" );
+ popupMenu.show( searchHistoryButton, 0, searchHistoryButton.getHeight() );
+ } );
+ compsTextField.putClientProperty( FlatClientProperties.TEXT_FIELD_LEADING_COMPONENT, searchHistoryButton );
+
+ // match case button
+ JToggleButton matchCaseButton = new JToggleButton( new FlatSVGIcon( "com/formdev/flatlaf/demo/icons/matchCase.svg" ) );
+ matchCaseButton.setRolloverIcon( new FlatSVGIcon( "com/formdev/flatlaf/demo/icons/matchCaseHovered.svg" ) );
+ matchCaseButton.setSelectedIcon( new FlatSVGIcon( "com/formdev/flatlaf/demo/icons/matchCaseSelected.svg" ) );
+ matchCaseButton.setToolTipText( "Match Case" );
+
+ // whole words button
+ JToggleButton wordsButton = new JToggleButton( new FlatSVGIcon( "com/formdev/flatlaf/demo/icons/words.svg" ) );
+ wordsButton.setRolloverIcon( new FlatSVGIcon( "com/formdev/flatlaf/demo/icons/wordsHovered.svg" ) );
+ wordsButton.setSelectedIcon( new FlatSVGIcon( "com/formdev/flatlaf/demo/icons/wordsSelected.svg" ) );
+ wordsButton.setToolTipText( "Whole Words" );
+
+ // regex button
+ JToggleButton regexButton = new JToggleButton( new FlatSVGIcon( "com/formdev/flatlaf/demo/icons/regex.svg" ) );
+ regexButton.setRolloverIcon( new FlatSVGIcon( "com/formdev/flatlaf/demo/icons/regexHovered.svg" ) );
+ regexButton.setSelectedIcon( new FlatSVGIcon( "com/formdev/flatlaf/demo/icons/regexSelected.svg" ) );
+ regexButton.setToolTipText( "Regular Expression" );
+
+ // search toolbar
+ JToolBar searchToolbar = new JToolBar();
+ searchToolbar.add( matchCaseButton );
+ searchToolbar.add( wordsButton );
+ searchToolbar.addSeparator();
+ searchToolbar.add( regexButton );
+ compsTextField.putClientProperty( FlatClientProperties.TEXT_FIELD_TRAILING_COMPONENT, searchToolbar );
}
private void initComponents() {
@@ -134,6 +171,8 @@ class BasicComponentsPanel
JTextField leadingIconTextField = new JTextField();
JTextField trailingIconTextField = new JTextField();
JTextField iconsTextField = new JTextField();
+ JLabel compsLabel = new JLabel();
+ compsTextField = new JTextField();
JLabel fontsLabel = new JLabel();
JLabel h00Label = new JLabel();
JLabel h0Label = new JLabel();
@@ -181,6 +220,7 @@ class BasicComponentsPanel
"[]" +
"[]" +
"[]" +
+ "[]" +
"[]0" +
"[]"));
@@ -689,84 +729,89 @@ class BasicComponentsPanel
iconsTextField.setText("text");
add(iconsTextField, "cell 3 14,growx");
+ //---- compsLabel ----
+ compsLabel.setText("Leading/trailing comp.:");
+ add(compsLabel, "cell 0 15");
+ add(compsTextField, "cell 1 15 2 1,growx");
+
//---- fontsLabel ----
fontsLabel.setText("Typography / Fonts:");
- add(fontsLabel, "cell 0 15");
+ add(fontsLabel, "cell 0 16");
//---- h00Label ----
h00Label.setText("H00");
h00Label.putClientProperty("FlatLaf.styleClass", "h00");
- add(h00Label, "cell 1 15 5 1");
+ add(h00Label, "cell 1 16 5 1");
//---- h0Label ----
h0Label.setText("H0");
h0Label.putClientProperty("FlatLaf.styleClass", "h0");
- add(h0Label, "cell 1 15 5 1");
+ add(h0Label, "cell 1 16 5 1");
//---- h1Label ----
h1Label.setText("H1");
h1Label.putClientProperty("FlatLaf.styleClass", "h1");
- add(h1Label, "cell 1 15 5 1");
+ add(h1Label, "cell 1 16 5 1");
//---- h2Label ----
h2Label.setText("H2");
h2Label.putClientProperty("FlatLaf.styleClass", "h2");
- add(h2Label, "cell 1 15 5 1");
+ add(h2Label, "cell 1 16 5 1");
//---- h3Label ----
h3Label.setText("H3");
h3Label.putClientProperty("FlatLaf.styleClass", "h3");
- add(h3Label, "cell 1 15 5 1");
+ add(h3Label, "cell 1 16 5 1");
//---- h4Label ----
h4Label.setText("H4");
h4Label.putClientProperty("FlatLaf.styleClass", "h4");
- add(h4Label, "cell 1 15 5 1");
+ add(h4Label, "cell 1 16 5 1");
//---- lightLabel ----
lightLabel.setText("light");
lightLabel.putClientProperty("FlatLaf.style", "font: 200% $light.font");
- add(lightLabel, "cell 1 15 5 1,gapx 30");
+ add(lightLabel, "cell 1 16 5 1,gapx 30");
//---- semiboldLabel ----
semiboldLabel.setText("semibold");
semiboldLabel.putClientProperty("FlatLaf.style", "font: 200% $semibold.font");
- add(semiboldLabel, "cell 1 15 5 1");
+ add(semiboldLabel, "cell 1 16 5 1");
//---- fontZoomLabel ----
fontZoomLabel.setText("(200%)");
fontZoomLabel.putClientProperty("FlatLaf.styleClass", "small");
fontZoomLabel.setEnabled(false);
- add(fontZoomLabel, "cell 1 15 5 1");
+ add(fontZoomLabel, "cell 1 16 5 1");
//---- largeLabel ----
largeLabel.setText("large");
largeLabel.putClientProperty("FlatLaf.styleClass", "large");
- add(largeLabel, "cell 1 16 5 1");
+ add(largeLabel, "cell 1 17 5 1");
//---- defaultLabel ----
defaultLabel.setText("default");
- add(defaultLabel, "cell 1 16 5 1");
+ add(defaultLabel, "cell 1 17 5 1");
//---- mediumLabel ----
mediumLabel.setText("medium");
mediumLabel.putClientProperty("FlatLaf.styleClass", "medium");
- add(mediumLabel, "cell 1 16 5 1");
+ add(mediumLabel, "cell 1 17 5 1");
//---- smallLabel ----
smallLabel.setText("small");
smallLabel.putClientProperty("FlatLaf.styleClass", "small");
- add(smallLabel, "cell 1 16 5 1");
+ add(smallLabel, "cell 1 17 5 1");
//---- miniLabel ----
miniLabel.setText("mini");
miniLabel.putClientProperty("FlatLaf.styleClass", "mini");
- add(miniLabel, "cell 1 16 5 1");
+ add(miniLabel, "cell 1 17 5 1");
//---- monospacedLabel ----
monospacedLabel.setText("monospaced");
monospacedLabel.putClientProperty("FlatLaf.styleClass", "monospaced");
- add(monospacedLabel, "cell 1 16 5 1,gapx 30");
+ add(monospacedLabel, "cell 1 17 5 1,gapx 30");
//======== popupMenu1 ========
{
@@ -841,7 +886,7 @@ class BasicComponentsPanel
rows[11].setGapAfter( zeroGap );
rows[12].setGapBefore( zeroGap );
rows[13].setGapBefore( zeroGap );
- rows[15].setGapBefore( zeroGap );
+ rows[16].setGapBefore( zeroGap );
layout.setRowConstraints( ac );
// move two text field into same row as spinners
@@ -859,5 +904,6 @@ class BasicComponentsPanel
}
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
+ private JTextField compsTextField;
// JFormDesigner - End of variables declaration //GEN-END:variables
}
diff --git a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/BasicComponentsPanel.jfd b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/BasicComponentsPanel.jfd
index f1a7e69a..c5eb1554 100644
--- a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/BasicComponentsPanel.jfd
+++ b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/BasicComponentsPanel.jfd
@@ -1,4 +1,4 @@
-JFDML JFormDesigner: "7.0.4.0.360" Java: "16" encoding: "UTF-8"
+JFDML JFormDesigner: "7.0.5.0.404" Java: "17" encoding: "UTF-8"
new FormModel {
contentType: "form/swing"
@@ -9,7 +9,7 @@ new FormModel {
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
"$layoutConstraints": "insets dialog,hidemode 3"
"$columnConstraints": "[][sizegroup 1][sizegroup 1][sizegroup 1][][]"
- "$rowConstraints": "[][][][][][][][][][][][]para[][][][]0[]"
+ "$rowConstraints": "[][][][][][][][][][][][]para[][][][][]0[]"
} ) {
name: "this"
add( new FormComponent( "javax.swing.JLabel" ) {
@@ -671,67 +671,81 @@ new FormModel {
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 3 14,growx"
} )
+ add( new FormComponent( "javax.swing.JLabel" ) {
+ name: "compsLabel"
+ "text": "Leading/trailing comp.:"
+ }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
+ "value": "cell 0 15"
+ } )
+ add( new FormComponent( "javax.swing.JTextField" ) {
+ name: "compsTextField"
+ auxiliary() {
+ "JavaCodeGenerator.variableLocal": false
+ }
+ }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
+ "value": "cell 1 15 2 1,growx"
+ } )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "fontsLabel"
"text": "Typography / Fonts:"
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
- "value": "cell 0 15"
+ "value": "cell 0 16"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "h00Label"
"text": "H00"
"$client.FlatLaf.styleClass": "h00"
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
- "value": "cell 1 15 5 1"
+ "value": "cell 1 16 5 1"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "h0Label"
"text": "H0"
"$client.FlatLaf.styleClass": "h0"
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
- "value": "cell 1 15 5 1"
+ "value": "cell 1 16 5 1"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "h1Label"
"text": "H1"
"$client.FlatLaf.styleClass": "h1"
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
- "value": "cell 1 15 5 1"
+ "value": "cell 1 16 5 1"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "h2Label"
"text": "H2"
"$client.FlatLaf.styleClass": "h2"
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
- "value": "cell 1 15 5 1"
+ "value": "cell 1 16 5 1"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "h3Label"
"text": "H3"
"$client.FlatLaf.styleClass": "h3"
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
- "value": "cell 1 15 5 1"
+ "value": "cell 1 16 5 1"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "h4Label"
"text": "H4"
"$client.FlatLaf.styleClass": "h4"
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
- "value": "cell 1 15 5 1"
+ "value": "cell 1 16 5 1"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "lightLabel"
"text": "light"
"$client.FlatLaf.style": "font: 200% $light.font"
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
- "value": "cell 1 15 5 1,gapx 30"
+ "value": "cell 1 16 5 1,gapx 30"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "semiboldLabel"
"text": "semibold"
"$client.FlatLaf.style": "font: 200% $semibold.font"
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
- "value": "cell 1 15 5 1"
+ "value": "cell 1 16 5 1"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "fontZoomLabel"
@@ -739,48 +753,48 @@ new FormModel {
"$client.FlatLaf.styleClass": "small"
"enabled": false
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
- "value": "cell 1 15 5 1"
+ "value": "cell 1 16 5 1"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "largeLabel"
"text": "large"
"$client.FlatLaf.styleClass": "large"
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
- "value": "cell 1 16 5 1"
+ "value": "cell 1 17 5 1"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "defaultLabel"
"text": "default"
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
- "value": "cell 1 16 5 1"
+ "value": "cell 1 17 5 1"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "mediumLabel"
"text": "medium"
"$client.FlatLaf.styleClass": "medium"
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
- "value": "cell 1 16 5 1"
+ "value": "cell 1 17 5 1"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "smallLabel"
"text": "small"
"$client.FlatLaf.styleClass": "small"
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
- "value": "cell 1 16 5 1"
+ "value": "cell 1 17 5 1"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "miniLabel"
"text": "mini"
"$client.FlatLaf.styleClass": "mini"
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
- "value": "cell 1 16 5 1"
+ "value": "cell 1 17 5 1"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "monospacedLabel"
"text": "monospaced"
"$client.FlatLaf.styleClass": "monospaced"
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
- "value": "cell 1 16 5 1,gapx 30"
+ "value": "cell 1 17 5 1,gapx 30"
} )
}, new FormLayoutConstraints( null ) {
"location": new java.awt.Point( 0, 0 )
diff --git a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/FlatLafDemo.java b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/FlatLafDemo.java
index 9a78afe1..7bca3551 100644
--- a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/FlatLafDemo.java
+++ b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/FlatLafDemo.java
@@ -72,7 +72,7 @@ public class FlatLafDemo
DemoFrame frame = new DemoFrame();
if( FlatLafDemo.screenshotsMode )
- frame.setPreferredSize( new Dimension( 1660, 840 ) );
+ frame.setPreferredSize( new Dimension( 1660, 880 ) );
// show frame
frame.pack();
diff --git a/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/matchCase.svg b/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/matchCase.svg
new file mode 100644
index 00000000..64b341ed
--- /dev/null
+++ b/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/matchCase.svg
@@ -0,0 +1,9 @@
+
+
diff --git a/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/matchCaseHovered.svg b/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/matchCaseHovered.svg
new file mode 100644
index 00000000..e07af386
--- /dev/null
+++ b/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/matchCaseHovered.svg
@@ -0,0 +1,9 @@
+
+
diff --git a/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/matchCaseSelected.svg b/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/matchCaseSelected.svg
new file mode 100644
index 00000000..6be2c27e
--- /dev/null
+++ b/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/matchCaseSelected.svg
@@ -0,0 +1,9 @@
+
+
diff --git a/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/regex.svg b/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/regex.svg
new file mode 100644
index 00000000..f073c590
--- /dev/null
+++ b/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/regex.svg
@@ -0,0 +1,7 @@
+
+
diff --git a/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/regexHovered.svg b/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/regexHovered.svg
new file mode 100644
index 00000000..545853d7
--- /dev/null
+++ b/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/regexHovered.svg
@@ -0,0 +1,7 @@
+
+
diff --git a/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/regexSelected.svg b/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/regexSelected.svg
new file mode 100644
index 00000000..29a9c56d
--- /dev/null
+++ b/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/regexSelected.svg
@@ -0,0 +1,7 @@
+
+
diff --git a/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/words.svg b/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/words.svg
new file mode 100644
index 00000000..e427f911
--- /dev/null
+++ b/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/words.svg
@@ -0,0 +1,6 @@
+
+
diff --git a/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/wordsHovered.svg b/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/wordsHovered.svg
new file mode 100644
index 00000000..d99d09d6
--- /dev/null
+++ b/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/wordsHovered.svg
@@ -0,0 +1,6 @@
+
+
diff --git a/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/wordsSelected.svg b/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/wordsSelected.svg
new file mode 100644
index 00000000..21533311
--- /dev/null
+++ b/flatlaf-demo/src/main/resources/com/formdev/flatlaf/demo/icons/wordsSelected.svg
@@ -0,0 +1,6 @@
+
+
diff --git a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatTextComponentsTest.java b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatTextComponentsTest.java
index 1af9ec05..a0c66148 100644
--- a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatTextComponentsTest.java
+++ b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatTextComponentsTest.java
@@ -80,6 +80,7 @@ public class FlatTextComponentsTest
JLabel l = new JLabel( "lead" );
l.setOpaque( true );
l.setBackground( Color.green );
+ l.setVisible( leadingComponentVisibleCheckBox.isSelected() );
return l;
} );
}
@@ -92,10 +93,34 @@ public class FlatTextComponentsTest
JLabel l = new JLabel( "tr" );
l.setOpaque( true );
l.setBackground( Color.magenta );
+ l.setVisible( trailingComponentVisibleCheckBox.isSelected() );
return l;
} );
}
+ private void leadingComponentVisible() {
+ setLeadingTrailingComponentVisible( FlatClientProperties.TEXT_FIELD_LEADING_COMPONENT,
+ leadingComponentVisibleCheckBox.isSelected() );
+ }
+
+ private void trailingComponentVisible() {
+ setLeadingTrailingComponentVisible( FlatClientProperties.TEXT_FIELD_TRAILING_COMPONENT,
+ trailingComponentVisibleCheckBox.isSelected() );
+ }
+
+ private void setLeadingTrailingComponentVisible( String key, boolean visible ) {
+ for( Component c : getComponents() ) {
+ if( c instanceof JTextField ) {
+ Object value = ((JTextField)c).getClientProperty( key );
+ if( value instanceof JComponent ) {
+ ((JComponent)value).setVisible( visible );
+ c.revalidate();
+ c.repaint();
+ }
+ }
+ }
+ }
+
private void putTextFieldClientProperty( String key, Object value ) {
for( Component c : getComponents() ) {
if( c instanceof JTextField )
@@ -141,6 +166,8 @@ public class FlatTextComponentsTest
trailingIconCheckBox = new JCheckBox();
leadingComponentCheckBox = new JCheckBox();
trailingComponentCheckBox = new JCheckBox();
+ leadingComponentVisibleCheckBox = new JCheckBox();
+ trailingComponentVisibleCheckBox = new JCheckBox();
JLabel passwordFieldLabel = new JLabel();
JPasswordField passwordField1 = new JPasswordField();
JPasswordField passwordField3 = new JPasswordField();
@@ -290,6 +317,8 @@ public class FlatTextComponentsTest
"[]0" +
"[]" +
"[]0" +
+ "[]" +
+ "[]0" +
"[]"));
//---- button1 ----
@@ -361,8 +390,22 @@ public class FlatTextComponentsTest
trailingComponentCheckBox.setName("trailingComponentCheckBox");
trailingComponentCheckBox.addActionListener(e -> trailingComponent());
panel1.add(trailingComponentCheckBox, "cell 0 8 2 1,alignx left,growx 0");
+
+ //---- leadingComponentVisibleCheckBox ----
+ leadingComponentVisibleCheckBox.setText("leading component visible");
+ leadingComponentVisibleCheckBox.setSelected(true);
+ leadingComponentVisibleCheckBox.setName("leadingComponentVisibleCheckBox");
+ leadingComponentVisibleCheckBox.addActionListener(e -> leadingComponentVisible());
+ panel1.add(leadingComponentVisibleCheckBox, "cell 0 9 2 1,alignx left,growx 0");
+
+ //---- trailingComponentVisibleCheckBox ----
+ trailingComponentVisibleCheckBox.setText("trailing component visible");
+ trailingComponentVisibleCheckBox.setSelected(true);
+ trailingComponentVisibleCheckBox.setName("trailingComponentVisibleCheckBox");
+ trailingComponentVisibleCheckBox.addActionListener(e -> trailingComponentVisible());
+ panel1.add(trailingComponentVisibleCheckBox, "cell 0 10 2 1,alignx left,growx 0");
}
- add(panel1, "cell 4 0 1 6,aligny top,growy 0");
+ add(panel1, "cell 4 0 1 10,aligny top,growy 0");
//---- passwordFieldLabel ----
passwordFieldLabel.setText("JPasswordField:");
@@ -674,6 +717,8 @@ public class FlatTextComponentsTest
private JCheckBox trailingIconCheckBox;
private JCheckBox leadingComponentCheckBox;
private JCheckBox trailingComponentCheckBox;
+ private JCheckBox leadingComponentVisibleCheckBox;
+ private JCheckBox trailingComponentVisibleCheckBox;
private JTextField textField;
private JCheckBox dragEnabledCheckBox;
private JTextArea textArea;
diff --git a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatTextComponentsTest.jfd b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatTextComponentsTest.jfd
index 6eac474e..2dfcfb7b 100644
--- a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatTextComponentsTest.jfd
+++ b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatTextComponentsTest.jfd
@@ -77,7 +77,7 @@ new FormModel {
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
"$layoutConstraints": "hidemode 3"
"$columnConstraints": "[fill][fill]"
- "$rowConstraints": "[][][][][][]0[][]0[]"
+ "$rowConstraints": "[][][][][][]0[][]0[][]0[]"
} ) {
name: "panel1"
"border": new javax.swing.border.TitledBorder( "Control" )
@@ -188,8 +188,30 @@ new FormModel {
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 8 2 1,alignx left,growx 0"
} )
+ add( new FormComponent( "javax.swing.JCheckBox" ) {
+ name: "leadingComponentVisibleCheckBox"
+ "text": "leading component visible"
+ "selected": true
+ auxiliary() {
+ "JavaCodeGenerator.variableLocal": false
+ }
+ addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "leadingComponentVisible", false ) )
+ }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
+ "value": "cell 0 9 2 1,alignx left,growx 0"
+ } )
+ add( new FormComponent( "javax.swing.JCheckBox" ) {
+ name: "trailingComponentVisibleCheckBox"
+ "text": "trailing component visible"
+ "selected": true
+ auxiliary() {
+ "JavaCodeGenerator.variableLocal": false
+ }
+ addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "trailingComponentVisible", false ) )
+ }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
+ "value": "cell 0 10 2 1,alignx left,growx 0"
+ } )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
- "value": "cell 4 0 1 6,aligny top,growy 0"
+ "value": "cell 4 0 1 10,aligny top,growy 0"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "passwordFieldLabel"