RFR: 8054572: [macosx] JComboBox paints the border incorrectly [v2]

Prasanta Sadhukhan psadhukhan at openjdk.org
Wed Jul 13 11:35:22 UTC 2022


On Tue, 12 Jul 2022 22:56:37 GMT, Damon Nguyen <dnguyen at openjdk.org> wrote:

>> When a JComboBox is editable, the button segment of the combo box is misaligned vertically and has a different height. This change fixes these issues and adds a manual test that checks the appearance of an editable and non-editable JComboBox.
>> 
>> One of the discussions revolving this issue is the native macOS appearance of editable JComboBoxes. After looking through native macOS apps, the only one found is in System Preferences > Date & Time. The problem here is that the native equivalent found here uses a blue button with a single down arrow as the button's symbol. The current swing implementation uses a white button with an up & down arrow symbol for the button. A JRS widget button that has this blue button with a single downward arrow exists but does not support text fields.
>> 
>> As such, I believe the best fix for this issue is to mainly fix the alignment and sizing issue. I looked through Apple's documentation for these UI elements but editable JComboBoxes aren't specifically listed anywhere. Similarly, there's barely any editable JComboBoxes used in native mac apps (only the date & time). So, I don't think it's a major issue if JComboBox does not exactly match the example found in Date & Time.
>
> Damon Nguyen has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision:
> 
>  - Updated method names for PassFailJFrame
>  - Merge branch 'openjdk:master' into 8054572/JComboBoxBorderAlignmentFix
>  - Removed commented lines. Added newlines.
>  - Updated test with PassFailJFrame
>  - Added test
>  - Adjusted height and coordinate for editable JComboBox

Can you please show before and after fix image of the editable combobox?
It seems the border around the button makes it feel it's still not aligned properly which gives the impression that the button is bigger than textfield. Probably we can do away with the button border, if we can, in case we cannot draw the border around the whole textfield+button.

Also, I think if you try with different font size e.g.
`comboBox.setFont(new Font("Serif", Font.PLAIN, 30));`

you will again see the editable combobox button height is not matching textfield height whereas non editable one it is aligned..

-------------

PR: https://git.openjdk.org/jdk/pull/9473



More information about the client-libs-dev mailing list