import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.AbstractListModel; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.JScrollPane; public class JBenchFrame extends JFrame { BorderLayout borderLayout1 = new BorderLayout(); JList list1 = new JList(); JButton fillButton = new JButton(); public static void main(String[] args) { JBenchFrame bm = new JBenchFrame(); } public JBenchFrame() { this.getContentPane().setLayout(borderLayout1); this.setSize(new Dimension(400, 300)); fillButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ListData ld = new ListData(); long tmStart = System.currentTimeMillis(); list1.setModel(ld); list1.repaint(); long tmEnd = System.currentTimeMillis(); System.out.println(tmEnd - tmStart); } }); fillButton.setText("Fill"); this.getContentPane().add(new JScrollPane(list1), BorderLayout.CENTER); this.getContentPane().add(fillButton, BorderLayout.SOUTH); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } } class ListData extends AbstractListModel { String[] strings = new String[10000]; public ListData() { for (int i = 0; i < 10000; i++) { strings[i] = "bob" + i; } } public int getSize() { return strings.length; } public Object getElementAt(int index) { return strings[index]; } }