diff --git a/CHANGELOG.md b/CHANGELOG.md index ffa4d9e9..20df43d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ FlatLaf Change Log - Linux: Fixed scaling if `GDK_SCALE` environment variable is set or if running on JetBrains Runtime. (issue #69) - Tree: Fixed repainting wide selection on focus gained/lost. +- ComboBox: No longer ignore `JComboBox.prototypeDisplayValue` when computing + popup width. (issue #80) - Support changing default font used for all components with automatic scaling UI if using larger font. Use `UIManager.put( "defaultFont", myFont );` - No longer use system property `sun.java2d.uiScale`. (Java 8 only) diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatComboBoxUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatComboBoxUI.java index 49143807..c7730e34 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatComboBoxUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatComboBoxUI.java @@ -480,13 +480,8 @@ public class FlatComboBoxUI @Override protected Rectangle computePopupBounds( int px, int py, int pw, int ph ) { - // get maximum display size of all items, ignoring prototype value - Object prototype = comboBox.getPrototypeDisplayValue(); - if( prototype != null ) - comboBox.setPrototypeDisplayValue( null ); + // get maximum display size of all items Dimension displaySize = getDisplaySize(); - if( prototype != null ) - comboBox.setPrototypeDisplayValue( prototype ); // make popup wider if necessary if( displaySize.width > pw ) { 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 2e73567c..5fea98b5 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 @@ -310,14 +310,13 @@ class BasicComponentsPanel add(comboBox4, "cell 4 4,growx"); //---- comboBox5 ---- - comboBox5.setPrototypeDisplayValue("12345"); comboBox5.setModel(new DefaultComboBoxModel<>(new String[] { "wide popup if text is longer", "aa", "bbb", "cccc" })); - add(comboBox5, "cell 5 4,growx"); + add(comboBox5, "cell 5 4,growx,wmax 100"); //---- spinnerLabel ---- spinnerLabel.setText("JSpinner:"); 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 81c6bb83..cf19d4ca 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 @@ -242,7 +242,6 @@ new FormModel { } ) add( new FormComponent( "javax.swing.JComboBox" ) { name: "comboBox5" - "prototypeDisplayValue": "12345" "model": new javax.swing.DefaultComboBoxModel { selectedItem: "wide popup if text is longer" addElement( "wide popup if text is longer" ) @@ -251,7 +250,7 @@ new FormModel { addElement( "cccc" ) } }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 5 4,growx" + "value": "cell 5 4,growx,wmax 100" } ) add( new FormComponent( "javax.swing.JLabel" ) { name: "spinnerLabel" diff --git a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatComponentsTest.java b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatComponentsTest.java index 69847c07..c7767e1d 100644 --- a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatComponentsTest.java +++ b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatComponentsTest.java @@ -513,14 +513,13 @@ public class FlatComponentsTest add(comboBox4, "cell 4 5,growx"); //---- comboBox5 ---- - comboBox5.setPrototypeDisplayValue("12345"); comboBox5.setModel(new DefaultComboBoxModel<>(new String[] { "wide popup if text is longer", "aa", "bbb", "cccc" })); - add(comboBox5, "cell 5 5,growx"); + add(comboBox5, "cell 5 5,growx,wmax 100"); //---- spinnerLabel ---- spinnerLabel.setText("JSpinner:"); diff --git a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatComponentsTest.jfd b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatComponentsTest.jfd index 28154222..1daebf5f 100644 --- a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatComponentsTest.jfd +++ b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatComponentsTest.jfd @@ -373,7 +373,6 @@ new FormModel { } ) add( new FormComponent( "javax.swing.JComboBox" ) { name: "comboBox5" - "prototypeDisplayValue": "12345" "model": new javax.swing.DefaultComboBoxModel { selectedItem: "wide popup if text is longer" addElement( "wide popup if text is longer" ) @@ -382,7 +381,7 @@ new FormModel { addElement( "cccc" ) } }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 5 5,growx" + "value": "cell 5 5,growx,wmax 100" } ) add( new FormComponent( "javax.swing.JLabel" ) { name: "spinnerLabel"