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

Duplicated label text on the attached test suite

XMLWordPrintable

      When you run the following you will see the duplicated JLable text. It's not readible because of that.

      When you comment out paint method, it looks fine.

      import java.awt.swing.*;
      import java.awt.swing.tree.*;
      import java.awt.*;

      class MyTreeCellRenderer extends JPanel implements TreeCellRenderer
      {
          JLabel alabel = new JLabel("a label");

          public MyTreeCellRenderer(){
              super(false);
              setLayout(new FlowLayout());
              setBackground(Color.white);

              add(alabel);
          }
          
          public void paint(Graphics g){
              super.paint(g);
             alabel.paint(g);
          }

          public Component getTreeCellRendererComponent(JTree tree,
                                                        Object value,
                                                        boolean selected,
                                                        boolean expanded,
                                                        boolean leaf,
                                                        int row,
                                                        boolean hasFocus){

              DefaultMutableTreeNode node = (DefaultMutableTreeNode)value;
              alabel.setText((String)(node.getUserObject()));

              return this;
          }
      }

      public class PaintTest extends JFrame
      {
          JTree tree = null;
          MyTreeCellRenderer renderer = null;

          public PaintTest(){
              DefaultMutableTreeNode top = new DefaultMutableTreeNode("TOP");
              DefaultMutableTreeNode catagory;
              DefaultMutableTreeNode composer;
              DefaultMutableTreeNode style;

              // Classical
              catagory = new DefaultMutableTreeNode("Classical");
              top.add(catagory);

      // Beethoven
      catagory.add(composer = new DefaultMutableTreeNode("Beethoven"));
      composer.add(style = new DefaultMutableTreeNode("Concertos"));
      style.add(new DefaultMutableTreeNode("No. 1 - C Major"));
      style.add(new DefaultMutableTreeNode("No. 2 - B-Flat Major"));

      composer.add(style = new DefaultMutableTreeNode("Quartets"));
      style.add(new DefaultMutableTreeNode("Six String Quartets"));
      style.add(new DefaultMutableTreeNode("Three String Quartets"));
      style.add(new DefaultMutableTreeNode("Grosse Fugue for String Quartets"));

      // Mozart
      catagory.add(composer = new DefaultMutableTreeNode("Mozart"));
      composer.add(style = new DefaultMutableTreeNode("Concertos"));
      style.add(new DefaultMutableTreeNode("Piano Concerto No. 12"));
      style.add(new DefaultMutableTreeNode("Piano Concerto No. 17"));


              renderer = new MyTreeCellRenderer();
              tree = new JTree(top);
              tree.setCellRenderer(renderer);

              getContentPane().add(tree);
              setSize(300,300);
              show();
          }


          public static void main(String[] args){
              new PaintTest();
          }
      }
       

            sswingtrsunw Swingtraq Swingtraq (Inactive)
            bkimsunw Bae-chul Kim (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: