🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: borland.public.jbuilder.java.swing
Article #12006

JTable rendering SLOW !

#12006
From: Jaco Oosthuyzen
Date: Mon, 08 Mar 1999 00:00
110 lines
4422 bytes
I create a JTable exactly as per example, except that it is displayed in
a JFrame, on a JScrollPane.

It takes at least 5-10 seconds to repaint, and hogs 100% of CPU for this
period.

Please help ?

Thanks



        final String[] names = {"First Name", "Last Name", "Favorite
Color",
                                "Favorite Number", "Vegetarian"};
        final Object[][] data = {
     {"Mark", "Andrews", "Red", new Integer(2), new Boolean(true)},
     {"Tom", "Ball", "Blue", new Integer(99), new Boolean(false)},
     {"Alan", "Chung", "Green", new Integer(838), new Boolean(false)},
     {"Jeff", "Dinkins", "Turquois", new Integer(8), new Boolean(true)},

     {"Amy", "Fowler", "Yellow", new Integer(3), new Boolean(false)},
     {"Brian", "Gerhold", "Green", new Integer(0), new Boolean(false)},
     {"James", "Gosling", "Pink", new Integer(21), new Boolean(false)},
     {"David", "Karlton", "Red", new Integer(1), new Boolean(false)},
     {"Dave", "Kloba", "Yellow", new Integer(14), new Boolean(false)},
     {"Peter", "Korn", "Purple", new Integer(12), new Boolean(false)},
     {"Phil", "Milne", "Purple", new Integer(3), new Boolean(false)},
     {"Dave", "Moore", "Green", new Integer(88), new Boolean(false)},
     {"Hans", "Muller", "Maroon", new Integer(5), new Boolean(false)},
     {"Rick", "Levenson", "Blue", new Integer(2), new Boolean(false)},
     {"Tim", "Prinzing", "Blue", new Integer(22), new Boolean(false)},
     {"Chester", "Rose", "Black", new Integer(0), new Boolean(false)},
     {"Ray", "Ryan", "Gray", new Integer(77), new Boolean(false)},
     {"Georges", "Saab", "Red", new Integer(4), new Boolean(false)},
     {"Willie", "Walker", "Phthalo Blue", new Integer(4), new
Boolean(false)},
     {"Kathy", "Walrath", "Blue", new Integer(8), new Boolean(false)},
     {"Arnaud", "Weber", "Green", new Integer(44), new Boolean(false)}
        };

       // Create a model of the data.
       TableModel dataModel = new AbstractTableModel()
       {
            // These methods always need to be implemented.
            public int getColumnCount() { return names.length; }
            public int getRowCount() { return data.length;}
            public Object getValueAt(int row, int col) {return
data[row][col];}

            // The default implementations of these methods in
            // AbstractTableModel would work, but we can refine them.
            public String getColumnName(int column) {return
names[column];}
            public Class getColumnClass(int c)
            {
              System.out.println ("getValueAt(0,"+c+")="+getValueAt(0,
c));
              System.out.println
("getValueAt(0,"+c+").class="+getValueAt(0, c).getClass());
              return getValueAt(0, c).getClass();
            }
            public boolean isCellEditable(int row, int col) {return
true;}
            public void setValueAt(Object aValue, int row, int column)
            {
                data[row][column] = aValue;
            }
       };
         //Create the table
        JTable tableView = new JTable(dataModel);

        if (dictFrm == null)
           dictFrm = new DictFrame();
        dictFrm.addTable(tableView);
        dictFrm.show();


public class DictFrame extends JFrame
{
  JScrollPane jScrollPane1 = null;


  public DictFrame()
  {
    try
    {
      jbInit();
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }

  private void jbInit() throws Exception
  {
    this.setSize(new Dimension(590, 436));
  }

  public void addTable(JTable jTable1)
  {
    if (jScrollPane1 == null)
      jScrollPane1 = JTable.createScrollPaneForTable(jTable1);
    this.getContentPane().add(jScrollPane1, BorderLayout.CENTER);
    jTable1.getTableHeader().setReorderingAllowed(true);
    jScrollPane1.getViewport().add(jTable1, null);
    this.repaint();
  }
}
Technical Details
Message-ID: <36E3AE7F.EB03126@prosol.co.za>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: 111d45,a7ea9724dde6fd05,start
X-Google-Attributes: gid111d45,public
From: Jaco Oosthuyzen <jaco@tk.co.za>
Subject: JTable rendering SLOW !
Date: 1999/03/08
Message-ID: <36E3AE7F.EB03126@prosol.co.za>
X-Deja-AN: 452527106
Content-Transfer-Encoding: 7bit
Organization: Another Netscape Collabra Server User
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0
Newsgroups: borland.public.jbuilder.java.swing