On Mon, 6 Feb 2023 19:04:07 GMT, Damon Nguyen <[email protected]> wrote:
>> Before the fix, a JComboBox in Nimbus L&F would have normal black text even >> when the JComboBox was disabled if SynthComboBoxRenderer was replaced with a >> DefaultListCellRenderer. This text should be greyed out like in other L&F's. >> When looking into the defaults for Nimbus L&F files for attributes and >> states of a JComboBox, it confirm that the intention for disabled >> JComboBoxes is nimbusDisabledText (which is grey text). >> >> SynthComboBoxes have an additional check in its default >> SynthComboBoxRenderer that enables/disables the renderer itself. The >> SynthComboBoxRenderer inherits its enabled state from the parent ComboBox. >> Since the renderer with DefaultListCellRenderer is in a separate class >> without a reference to the comboBox, a listener was added to SynthComboBoxUI. >> >> An additional issue occurred in DefaultListCellRenderer because the renderer >> overrode the listener's re-assigned enabled state. In testing, setting the >> enabled state in DefaultListCellRenderer is redundant for all L&F's and is >> not needed here. However, instead of removing it altogether, a conditional >> was added specifically to allow ComboBoxes to skip setting enabled state >> here. >> >> After the fix, the Nimbus JComboBox with DLCR set matches the appearance of >> a normal Nimbus JComboBox. I can enable/disable the JComboBoxes in the test, >> and the UI elements behave and appear as expected. > > Damon Nguyen has updated the pull request incrementally with one additional > commit since the last revision: > > Remove unused var. Fix try catch Tested the fix on SwingSet2 and the fix works as expected. Copyright year needs to be updated for SynthComboBoxUI , DefaultListCellRenderer too. ------------- Marked as reviewed by honkar (Committer). PR: https://git.openjdk.org/jdk/pull/12390
