Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8253266

JList and JTable constructors should clear OPAQUE_SET before calling updateUI

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 17
    • 11, 15, 16
    • client-libs
    • b17
    • generic
    • generic

      The JList and JTable constructors both set the opaque property of the component to true using setOpaque(true), which has the side-effect of setting the OPAQUE_SET flag to true, which has the effect of preventing setUIProperty from clearing the property. As the opaque property was not set by the client program, setUIProperty should work.

      package test;

      import javax.swing.JList;
      import javax.swing.JTable;
      import javax.swing.LookAndFeel;
      import javax.swing.SwingUtilities;

      public class TestOpaqueListTable
      {
          public TestOpaqueListTable()
          {
              JList list = new JList();
              LookAndFeel.installProperty(list, "opaque", false);
              if (list.isOpaque()) {
                  System.err.println("Failed to clear JList opaque");
              }
              JTable table = new JTable();
              LookAndFeel.installProperty(table, "opaque", false);
              if (table.isOpaque()) {
                  System.err.println("Failed to clear JTable opaque");
              }
          }

          public static void main(String[] args)
          {
              SwingUtilities.invokeLater(TestOpaqueListTable::new);
          }
      }

            trebari Tejpal Rebari (Inactive)
            alans Alan Snyder
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: