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

JLabels are not shown when using GroupLayout

        FULL PRODUCT VERSION :
        java version "1.6.0"
        Java(TM) SE Runtime Environment (build 1.6.0-b105)
        Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)


        ADDITIONAL OS VERSION INFORMATION :
        Linux linux 2.6.16.27-0.6-smp #1 SMP Wed Dec 13 09:34:50 UTC 2006 i686 i686 i386 GNU/Linux

        EXTRA RELEVANT SYSTEM CONFIGURATION :
        This also happens on Windows.

        A DESCRIPTION OF THE PROBLEM :
        In the example program, GroupLayout from Java 6.0 uses 100% after the window is being maximized. Also, 2 labels are not being drawn correctly.

        The bug does not occur, if you use JDK 5.0 with swing-layout extension.

        The example was designed using NetBeans 5.5.

        STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
        Start the example program
        Maximize the window


        EXPECTED VERSUS ACTUAL BEHAVIOR :
        EXPECTED -
        Labels should be drawn correctly, CPU should be 0% after resize.
        ACTUAL -
        2 labels are drawn wrong, CPU stays at 100%.

        REPRODUCIBILITY :
        This bug can be reproduced always.

        ---------- BEGIN SOURCE ----------
        import javax.swing.*;
        /*
         * LayoutTestPanel.java
         *
         * Created on 24. Februar 2007, 06:55
         */

        /**
         *
         * @author thomas
         */
        public class LayoutTestPanel extends javax.swing.JPanel {
          public static void main(String[] args) throws Exception {
            java.awt.EventQueue.invokeLater(new Runnable() {
              public void run() {
                JFrame frame;
                
                frame = new JFrame("LayoutTest");
                frame.add(new LayoutTestPanel());
                frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
                frame.pack();
                frame.setVisible(true);
              }
            });
          }
          
          /** Creates new form LayoutTestPanel */
          public LayoutTestPanel() {
            initComponents();
          }
          
          /** This method is called from within the constructor to
           * initialize the form.
           * WARNING: Do NOT modify this code. The content of this method is
           * always regenerated by the Form Editor.
           */
          // <editor-fold defaultstate="collapsed" desc=" Generated Code ">
          private void initComponents() {
            java.awt.GridBagConstraints gridBagConstraints;

            jPanel1 = new javax.swing.JPanel();
            jLabel7 = new javax.swing.JLabel();
            jTextField3 = new javax.swing.JTextField();
            jLabel8 = new javax.swing.JLabel();
            jLabel9 = new javax.swing.JLabel();
            jCheckBox2 = new javax.swing.JCheckBox();
            jLabel10 = new javax.swing.JLabel();
            jLabel11 = new javax.swing.JLabel();
            jTextField4 = new javax.swing.JTextField();
            jLabel12 = new javax.swing.JLabel();
            jPanel2 = new javax.swing.JPanel();
            jLabel1 = new javax.swing.JLabel();
            jTextField1 = new javax.swing.JTextField();
            jLabel2 = new javax.swing.JLabel();
            jCheckBox1 = new javax.swing.JCheckBox();
            jLabel3 = new javax.swing.JLabel();
            jTextField2 = new javax.swing.JTextField();
            jLabel4 = new javax.swing.JLabel();
            jLabel5 = new javax.swing.JLabel();
            jLabel6 = new javax.swing.JLabel();

            jPanel1.setLayout(new java.awt.GridBagLayout());

            jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("GridBagLayout"));
            jLabel7.setText("<html>Meldemodus</html>");
            jLabel7.setVerticalAlignment(javax.swing.SwingConstants.TOP);
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
            gridBagConstraints.weightx = 0.2;
            gridBagConstraints.insets = new java.awt.Insets(3, 0, 3, 0);
            jPanel1.add(jLabel7, gridBagConstraints);

            jTextField3.setText("test");
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
            gridBagConstraints.weightx = 0.3;
            gridBagConstraints.insets = new java.awt.Insets(3, 0, 3, 0);
            jPanel1.add(jTextField3, gridBagConstraints);

            jLabel8.setText("<html>bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla</html>");
            jLabel8.setVerticalAlignment(javax.swing.SwingConstants.TOP);
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
            gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
            gridBagConstraints.weightx = 0.5;
            gridBagConstraints.insets = new java.awt.Insets(3, 0, 3, 0);
            jPanel1.add(jLabel8, gridBagConstraints);

            jLabel9.setText("<html>Fertigmelden Modus</html>");
            jLabel9.setVerticalAlignment(javax.swing.SwingConstants.TOP);
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
            gridBagConstraints.weightx = 0.2;
            gridBagConstraints.insets = new java.awt.Insets(3, 0, 3, 0);
            jPanel1.add(jLabel9, gridBagConstraints);

            jCheckBox2.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
            jCheckBox2.setMargin(new java.awt.Insets(0, 0, 0, 0));
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
            gridBagConstraints.weightx = 0.3;
            gridBagConstraints.insets = new java.awt.Insets(3, 0, 3, 0);
            jPanel1.add(jCheckBox2, gridBagConstraints);

            jLabel10.setText("<html>bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla</html>");
            jLabel10.setVerticalAlignment(javax.swing.SwingConstants.TOP);
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
            gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
            gridBagConstraints.weightx = 0.5;
            gridBagConstraints.insets = new java.awt.Insets(3, 0, 3, 0);
            jPanel1.add(jLabel10, gridBagConstraints);

            jLabel11.setText("<html>Mehrere AG je Maschinengruppe</html>");
            jLabel11.setVerticalAlignment(javax.swing.SwingConstants.TOP);
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
            gridBagConstraints.weightx = 0.2;
            gridBagConstraints.insets = new java.awt.Insets(3, 0, 3, 0);
            jPanel1.add(jLabel11, gridBagConstraints);

            jTextField4.setText("test");
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
            gridBagConstraints.weightx = 0.3;
            gridBagConstraints.insets = new java.awt.Insets(3, 0, 3, 0);
            jPanel1.add(jTextField4, gridBagConstraints);

            jLabel12.setText("<html>bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla</html>");
            jLabel12.setVerticalAlignment(javax.swing.SwingConstants.TOP);
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
            gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
            gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
            gridBagConstraints.weightx = 0.5;
            gridBagConstraints.insets = new java.awt.Insets(3, 0, 3, 0);
            jPanel1.add(jLabel12, gridBagConstraints);

            jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("GroupLayout"));
            jLabel1.setText("<html>Meldemodus</html>");

            jTextField1.setText("test");

            jLabel2.setText("<html>Fertigmelden Modus</html>");

            jCheckBox1.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
            jCheckBox1.setMargin(new java.awt.Insets(0, 0, 0, 0));

            jLabel3.setText("<html>Mehrere AG je Maschinengruppe</html>");

            jTextField2.setText("test");

            jLabel4.setText("<html>bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla</html>");

            jLabel5.setText("<html>bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla</html>");

            jLabel6.setText("<html>bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla</html>");

            org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
            jPanel2.setLayout(jPanel2Layout);
            jPanel2Layout.setHorizontalGroup(
              jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
              .add(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                  .add(jLabel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 118, Short.MAX_VALUE)
                  .add(jLabel3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 118, Short.MAX_VALUE)
                  .add(jLabel2, 0, 0, Short.MAX_VALUE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                  .add(jCheckBox1)
                  .add(jTextField2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 175, Short.MAX_VALUE)
                  .add(jTextField1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 175, Short.MAX_VALUE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                  .add(jLabel6, 0, 0, Short.MAX_VALUE)
                  .add(jLabel5, 0, 0, Short.MAX_VALUE)
                  .add(jLabel4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 304, Short.MAX_VALUE))
                .addContainerGap())
            );
            jPanel2Layout.setVerticalGroup(
              jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
              .add(jPanel2Layout.createSequentialGroup()
                .add(11, 11, 11)
                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                  .add(jLabel1)
                  .add(jLabel4)
                  .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                  .add(jLabel2)
                  .add(jCheckBox1)
                  .add(jLabel5))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                  .add(jLabel3)
                  .add(jTextField2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                  .add(jLabel6))
                .addContainerGap(73, Short.MAX_VALUE))
            );

            org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
            this.setLayout(layout);
            layout.setHorizontalGroup(
              layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
              .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 655, Short.MAX_VALUE)
              .add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            );
            layout.setVerticalGroup(
              layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
              .add(layout.createSequentialGroup()
                .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 211, Short.MAX_VALUE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            );
          }// </editor-fold>
          
          
          // Variables declaration - do not modify
          private javax.swing.JCheckBox jCheckBox1;
          private javax.swing.JCheckBox jCheckBox2;
          private javax.swing.JLabel jLabel1;
          private javax.swing.JLabel jLabel10;
          private javax.swing.JLabel jLabel11;
          private javax.swing.JLabel jLabel12;
          private javax.swing.JLabel jLabel2;
          private javax.swing.JLabel jLabel3;
          private javax.swing.JLabel jLabel4;
          private javax.swing.JLabel jLabel5;
          private javax.swing.JLabel jLabel6;
          private javax.swing.JLabel jLabel7;
          private javax.swing.JLabel jLabel8;
          private javax.swing.JLabel jLabel9;
          private javax.swing.JPanel jPanel1;
          private javax.swing.JPanel jPanel2;
          private javax.swing.JTextField jTextField1;
          private javax.swing.JTextField jTextField2;
          private javax.swing.JTextField jTextField3;
          private javax.swing.JTextField jTextField4;
          // End of variables declaration
          
        }

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

        Release Regression From : 5.0u10
        The above release value was the last known release where this
        bug was not reproducible. Since then there has been a regression.

              Unassigned Unassigned
              ryeung Roger Yeung (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: