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

Tab text position in JDK 7 with Synth based LaF is different to Java 5/6

XMLWordPrintable

      FULL PRODUCT VERSION :
      java version "1.7.0-ea"
      Java(TM) SE Runtime Environment (build 1.7.0-ea-b136)
      Java HotSpot(TM) Client VM (build 21.0-b06, mixed mode, sharing)


      A DESCRIPTION OF THE PROBLEM :
      The text position for selected tabs is different to Java 5/6. On Java 5/6 the selected text is raised by default (2 pixels, compared to unselected tab text). Please find a simple test case below.



      REGRESSION. Last worked in version 6u24

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Execute test case with Java 5/6/7 and compare the screens.


      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      The selected tab (red) should be raised by 2 pixels.

      ACTUAL -
      The selected tab isn't raised.


      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      package test.synth;

      import java.awt.Dimension;
      import java.awt.EventQueue;
      import java.io.ByteArrayInputStream;
      import java.io.InputStream;

      import javax.swing.JFrame;
      import javax.swing.JLabel;
      import javax.swing.JTabbedPane;
      import javax.swing.UIManager;
      import javax.swing.plaf.synth.SynthLookAndFeel;

      public class SynthTabbedPaneTest extends JFrame
      {
        private static String synthXml = "<synth>" +
        " <style id=\"all\">" +
        " <font name=\"Dialog\" size=\"12\"/>" +
        " </style>" +
        " <bind style=\"all\" type=\"REGION\" key=\".*\"/>" +
        " <style id=\"tabbedPaneTab\">" +
        " <state>" +
        " <color type=\"TEXT_FOREGROUND\" value=\"#800000\"/>" +
        " </state>" +
        " <state value=\"SELECTED\">" +
        " <color type=\"TEXT_FOREGROUND\" value=\"#FF0000\"/>" +
        " </state>" +
        " </style>" +
        " <bind style=\"tabbedPaneTab\" type=\"region\" key=\"TabbedPaneTab\"/>" +
        "</synth>";
        
        public static void main(String[] args)
        {
          EventQueue.invokeLater(new Runnable(){
            public void run()
            {
              try
              {
                new SynthTabbedPaneTest();
              }
              catch (Exception e)
              {
                e.printStackTrace();
              }
            }
          });
        }

        public SynthTabbedPaneTest() throws Exception
        {
          InputStream is = new ByteArrayInputStream(synthXml.getBytes("UTF8"));
          SynthLookAndFeel laf = new SynthLookAndFeel();
          laf.load(is, SynthTabbedPaneTest.class);
          UIManager.setLookAndFeel(laf);

          JTabbedPane tabPane = new JTabbedPane();
          tabPane.addTab("Tab 1", new JLabel("Tab 1"));
          tabPane.addTab("Tab 2", new JLabel("Tab 2"));
          tabPane.addTab("Tab 3", new JLabel("Tab 3"));
          
          add(tabPane);
          
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          setSize(new Dimension(600, 300));
          setLocationRelativeTo(null);
          setVisible(true);
        }
      }

      ---------- END SOURCE ----------

            alexp Alexander Potochkin (Inactive)
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: