> 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

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/12390/files
  - new: https://git.openjdk.org/jdk/pull/12390/files/fa70b83f..99286089

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=12390&range=03
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=12390&range=02-03

  Stats: 3 lines in 1 file changed: 0 ins; 2 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/12390.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/12390/head:pull/12390

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

Reply via email to