-
Bug
-
Resolution: Duplicate
-
P3
-
None
-
8u20
-
x86_64
-
windows_7
FULL PRODUCT VERSION :
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.1.7601]
A DESCRIPTION OF THE PROBLEM :
When using the Nimbus look & feel, the selected item in a JList is not marked in the list's (default) selection foreground/background colors.
By default, the selection foreground and background colors of a JList in Nimbus should be #FFFFFF (white) and #39698A (a dark blue), respectively. However, the text color of the selected item does not change (i.e. remains black), and it is marked in #D6D9DF (a light grey).
REGRESSION. Last worked in version 8u11
ADDITIONAL REGRESSION INFORMATION:
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Set the NimbusLookAndFeel for your application, and make a JList visible on the screen (containing some items). Select any item.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The selected item is marked in the selection background color of the JList. Its text is shown in the selection foreground color of the JList.
ACTUAL -
The selected item is marked in some other color. Its text is shown in the default text color.
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.time.Month;
import javax.swing.JDialog;
import javax.swing.JList;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.plaf.nimbus.NimbusLookAndFeel;
public class SelectionBackgroundTestApplication
{
public static void main( String[] args )
{
try
{
UIManager.setLookAndFeel( new NimbusLookAndFeel() );
}
catch ( UnsupportedLookAndFeelException e )
{
e.printStackTrace();
return;
}
JDialog dlg = new JDialog();
dlg.setDefaultCloseOperation( JDialog.DISPOSE_ON_CLOSE );
JList<Month> comp = new JList<>( Month.values() );
System.out.println( "Expected selection foreground color: #" + Integer.toHexString( comp.getSelectionForeground().getRGB() ) );
System.out.println( "Expected selection background color: #" + Integer.toHexString( comp.getSelectionBackground().getRGB() ) );
dlg.getContentPane().add( comp );
dlg.pack();
dlg.setVisible( true );
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Setting the selection foreground and background colors of the JList to copies of the original selection foreground and background colors, respectively, fixes the problem:
comp.setSelectionForeground( new java.awt.Color( comp.getSelectionForeground().getRGB() ) );
comp.setSelectionBackground( new java.awt.Color( comp.getSelectionBackground().getRGB() ) );
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.1.7601]
A DESCRIPTION OF THE PROBLEM :
When using the Nimbus look & feel, the selected item in a JList is not marked in the list's (default) selection foreground/background colors.
By default, the selection foreground and background colors of a JList in Nimbus should be #FFFFFF (white) and #39698A (a dark blue), respectively. However, the text color of the selected item does not change (i.e. remains black), and it is marked in #D6D9DF (a light grey).
REGRESSION. Last worked in version 8u11
ADDITIONAL REGRESSION INFORMATION:
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Set the NimbusLookAndFeel for your application, and make a JList visible on the screen (containing some items). Select any item.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The selected item is marked in the selection background color of the JList. Its text is shown in the selection foreground color of the JList.
ACTUAL -
The selected item is marked in some other color. Its text is shown in the default text color.
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.time.Month;
import javax.swing.JDialog;
import javax.swing.JList;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.plaf.nimbus.NimbusLookAndFeel;
public class SelectionBackgroundTestApplication
{
public static void main( String[] args )
{
try
{
UIManager.setLookAndFeel( new NimbusLookAndFeel() );
}
catch ( UnsupportedLookAndFeelException e )
{
e.printStackTrace();
return;
}
JDialog dlg = new JDialog();
dlg.setDefaultCloseOperation( JDialog.DISPOSE_ON_CLOSE );
JList<Month> comp = new JList<>( Month.values() );
System.out.println( "Expected selection foreground color: #" + Integer.toHexString( comp.getSelectionForeground().getRGB() ) );
System.out.println( "Expected selection background color: #" + Integer.toHexString( comp.getSelectionBackground().getRGB() ) );
dlg.getContentPane().add( comp );
dlg.pack();
dlg.setVisible( true );
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Setting the selection foreground and background colors of the JList to copies of the original selection foreground and background colors, respectively, fixes the problem:
comp.setSelectionForeground( new java.awt.Color( comp.getSelectionForeground().getRGB() ) );
comp.setSelectionBackground( new java.awt.Color( comp.getSelectionBackground().getRGB() ) );
- relates to
-
JDK-8057791 Selection in JList is drawn with wrong colors in Nimbus L&F
- Resolved