mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-11 14:37:13 -06:00
ComboBox (editable) and Spinner: increased size of internal text field to the component border so that it behaves like plain text field (issue #330)
This commit is contained in:
@@ -20,6 +20,7 @@ import java.awt.*;
|
||||
import javax.swing.*;
|
||||
import javax.swing.border.*;
|
||||
import javax.swing.plaf.basic.BasicComboBoxEditor;
|
||||
import javax.swing.plaf.basic.BasicComboBoxRenderer;
|
||||
import com.formdev.flatlaf.icons.FlatFileViewFloppyDriveIcon;
|
||||
import com.formdev.flatlaf.util.UIScale;
|
||||
import net.miginfocom.swing.*;
|
||||
@@ -42,9 +43,23 @@ public class FlatCustomBordersTest
|
||||
} );
|
||||
}
|
||||
|
||||
@SuppressWarnings( "unchecked" )
|
||||
FlatCustomBordersTest() {
|
||||
initComponents();
|
||||
applyCustomBorders();
|
||||
|
||||
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>( new String[] {
|
||||
"text",
|
||||
"123",
|
||||
"4567",
|
||||
"abc",
|
||||
"def"
|
||||
} );
|
||||
|
||||
for( Component c : getComponents() ) {
|
||||
if( c instanceof JComboBox )
|
||||
((JComboBox<String>)c).setModel( model );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -99,6 +114,13 @@ public class FlatCustomBordersTest
|
||||
applyCustomComboBoxEditorBorderWithIcon( comboBox20 );
|
||||
applyCustomComboBoxEditorBorder( comboBox21, null );
|
||||
applyCustomComboBoxEditorBorder( comboBox22, null );
|
||||
|
||||
applyCustomComboBoxRendererBorder( comboBox23 );
|
||||
applyCustomComboBoxRendererBorder( comboBox24 );
|
||||
applyCustomComboBoxRendererBorderWithIcon( comboBox25 );
|
||||
applyCustomComboBoxRendererBorderWithIcon( comboBox26 );
|
||||
applyCustomComboBoxRendererBorder( comboBox27, null );
|
||||
applyCustomComboBoxRendererBorder( comboBox28, null );
|
||||
}
|
||||
|
||||
private void applyCustomInsideBorder( JComponent c, String uiKey ) {
|
||||
@@ -129,6 +151,21 @@ public class FlatCustomBordersTest
|
||||
} );
|
||||
}
|
||||
|
||||
private void applyCustomComboBoxRendererBorder( JComboBox<String> comboBox ) {
|
||||
applyCustomComboBoxRendererBorder( comboBox, new LineBorder( ORANGE, UIScale.scale( 3 ) ) );
|
||||
}
|
||||
|
||||
private void applyCustomComboBoxRendererBorderWithIcon( JComboBox<String> comboBox ) {
|
||||
applyCustomComboBoxRendererBorder( comboBox, new BorderWithIcon() );
|
||||
}
|
||||
|
||||
@SuppressWarnings( "unchecked" )
|
||||
private void applyCustomComboBoxRendererBorder( JComboBox<String> comboBox, Border border ) {
|
||||
BasicComboBoxRenderer customRenderer = new BasicComboBoxRenderer();
|
||||
customRenderer.setBorder( border );
|
||||
comboBox.setRenderer( customRenderer );
|
||||
}
|
||||
|
||||
private void initComponents() {
|
||||
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
|
||||
label1 = new JLabel();
|
||||
@@ -152,10 +189,16 @@ public class FlatCustomBordersTest
|
||||
comboBox2 = new JComboBox<>();
|
||||
comboBox3 = new JComboBox<>();
|
||||
comboBox4 = new JComboBox<>();
|
||||
comboBox23 = new JComboBox<>();
|
||||
comboBox25 = new JComboBox<>();
|
||||
comboBox27 = new JComboBox<>();
|
||||
comboBox5 = new JComboBox<>();
|
||||
comboBox6 = new JComboBox<>();
|
||||
comboBox7 = new JComboBox<>();
|
||||
comboBox8 = new JComboBox<>();
|
||||
comboBox24 = new JComboBox<>();
|
||||
comboBox26 = new JComboBox<>();
|
||||
comboBox28 = new JComboBox<>();
|
||||
comboBox9 = new JComboBox<>();
|
||||
comboBox10 = new JComboBox<>();
|
||||
comboBox11 = new JComboBox<>();
|
||||
@@ -289,6 +332,9 @@ public class FlatCustomBordersTest
|
||||
add(comboBox2, "cell 2 3");
|
||||
add(comboBox3, "cell 3 3");
|
||||
add(comboBox4, "cell 4 3");
|
||||
add(comboBox23, "cell 5 3");
|
||||
add(comboBox25, "cell 6 3");
|
||||
add(comboBox27, "cell 7 3");
|
||||
|
||||
//---- comboBox5 ----
|
||||
comboBox5.putClientProperty("JComponent.roundRect", true);
|
||||
@@ -306,6 +352,18 @@ public class FlatCustomBordersTest
|
||||
comboBox8.putClientProperty("JComponent.roundRect", true);
|
||||
add(comboBox8, "cell 4 4");
|
||||
|
||||
//---- comboBox24 ----
|
||||
comboBox24.putClientProperty("JComponent.roundRect", true);
|
||||
add(comboBox24, "cell 5 4");
|
||||
|
||||
//---- comboBox26 ----
|
||||
comboBox26.putClientProperty("JComponent.roundRect", true);
|
||||
add(comboBox26, "cell 6 4");
|
||||
|
||||
//---- comboBox28 ----
|
||||
comboBox28.putClientProperty("JComponent.roundRect", true);
|
||||
add(comboBox28, "cell 7 4");
|
||||
|
||||
//---- comboBox9 ----
|
||||
comboBox9.setEditable(true);
|
||||
add(comboBox9, "cell 1 5");
|
||||
@@ -460,10 +518,16 @@ public class FlatCustomBordersTest
|
||||
private JComboBox<String> comboBox2;
|
||||
private JComboBox<String> comboBox3;
|
||||
private JComboBox<String> comboBox4;
|
||||
private JComboBox<String> comboBox23;
|
||||
private JComboBox<String> comboBox25;
|
||||
private JComboBox<String> comboBox27;
|
||||
private JComboBox<String> comboBox5;
|
||||
private JComboBox<String> comboBox6;
|
||||
private JComboBox<String> comboBox7;
|
||||
private JComboBox<String> comboBox8;
|
||||
private JComboBox<String> comboBox24;
|
||||
private JComboBox<String> comboBox26;
|
||||
private JComboBox<String> comboBox28;
|
||||
private JComboBox<String> comboBox9;
|
||||
private JComboBox<String> comboBox10;
|
||||
private JComboBox<String> comboBox11;
|
||||
@@ -508,6 +572,9 @@ public class FlatCustomBordersTest
|
||||
@Override
|
||||
public void paintBorder( Component c, Graphics g, int x, int y, int width, int height ) {
|
||||
icon.paintIcon( c, g, x + width - icon.getIconWidth() - 2, y + ((height - icon.getIconHeight()) / 2) );
|
||||
|
||||
g.setColor( RED );
|
||||
g.drawRect( x, y, width - 1, height - 1 );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
JFDML JFormDesigner: "7.0.2.0.298" Java: "15" encoding: "UTF-8"
|
||||
JFDML JFormDesigner: "7.0.4.0.360" Java: "16" encoding: "UTF-8"
|
||||
|
||||
new FormModel {
|
||||
contentType: "form/swing"
|
||||
@@ -147,6 +147,30 @@ new FormModel {
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 4 3"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JComboBox" ) {
|
||||
name: "comboBox23"
|
||||
auxiliary() {
|
||||
"JavaCodeGenerator.typeParameters": "String"
|
||||
}
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 5 3"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JComboBox" ) {
|
||||
name: "comboBox25"
|
||||
auxiliary() {
|
||||
"JavaCodeGenerator.typeParameters": "String"
|
||||
}
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 6 3"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JComboBox" ) {
|
||||
name: "comboBox27"
|
||||
auxiliary() {
|
||||
"JavaCodeGenerator.typeParameters": "String"
|
||||
}
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 7 3"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JComboBox" ) {
|
||||
name: "comboBox5"
|
||||
"$client.JComponent.roundRect": true
|
||||
@@ -183,6 +207,33 @@ new FormModel {
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 4 4"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JComboBox" ) {
|
||||
name: "comboBox24"
|
||||
"$client.JComponent.roundRect": true
|
||||
auxiliary() {
|
||||
"JavaCodeGenerator.typeParameters": "String"
|
||||
}
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 5 4"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JComboBox" ) {
|
||||
name: "comboBox26"
|
||||
"$client.JComponent.roundRect": true
|
||||
auxiliary() {
|
||||
"JavaCodeGenerator.typeParameters": "String"
|
||||
}
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 6 4"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JComboBox" ) {
|
||||
name: "comboBox28"
|
||||
"$client.JComponent.roundRect": true
|
||||
auxiliary() {
|
||||
"JavaCodeGenerator.typeParameters": "String"
|
||||
}
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 7 4"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JComboBox" ) {
|
||||
name: "comboBox9"
|
||||
"editable": true
|
||||
|
||||
Reference in New Issue
Block a user