import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import javax.swing.DefaultListModel; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.JScrollPane; public class TryJlist extends JFrame { public ArrayList<String> list; public JList jlist; public TryJlist() { list = new ArrayList<String>(); list.add("item1"); list.add("item2"); list.add("itme3"); jlist = new JList(new MyModel()); JScrollPane panel = new JScrollPane(jlist); JButton button = new JButton("change"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub list.add("additem"); System.out.println(list.size()); jlist.setModel(new MyModel()); //jlist.repaint(); } }); add(panel, BorderLayout.CENTER); add(button, BorderLayout.NORTH); setSize(400, 300); setVisible(true); } public static void main(String[] args) { new TryJlist(); } class MyModel extends DefaultListModel { public Object getElementAt(int index) { // TODO Auto-generated method stub return list.get(index); // return super.getElementAt(index); } public int getSize() { // TODO Auto-generated method stub System.out.println(list.size()); return list.size(); // return super.getSize(); } } }