Hi Vladimir,
Thank you for your report, could you please submit the bug here:
https://bugs.java.com/bugdatabase
We would greatly appreciate if you could provide a test case.
Regards,
Alexey
On 20/03/2020 12:06, Vladimir Sitnikov wrote:
Hi,
I'm facing an issue that the editor for an editable combo box resets
its border as LaF changes.
It results in "textfield with border inside combobox" which looks weird.
Here are the screenshots of how it looks:
https://github.com/weisJ/darklaf/issues/104
While I analyzing the issue, I found an interesting code in the OpenJDK.
https://github.com/openjdk/jdk/blob/6dffcf753301385a5eeb869276967234126e509c/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicComboBoxEditor.java#L155
static class BorderlessTextField extends JTextField {
...
public void setBorder(Border b) {
if (!(b instanceof UIResource)) {
super.setBorder(b);
}
}
Even though it looks OK, it is using **wrong** UIResource.
I think the author was supposed to use javax.swing.plaf.UIResource,
however, in practice the code is comparing the instance of
javax.swing.plaf.basic.BasicComboBoxEditor.UIResource
which is a simple class defined at the end of the file:
public static class UIResource extends BasicComboBoxEditor
implements javax.swing.plaf.UIResource {
}
I think BorderlessTextField#setBorder should be updated to read if
(!(b instanceof javax.swing.plaf.UIResource)).
Any thoughts on that?
Vladimir