给个提示就是模型-视图-控制器分离的概念,你的方法是实现不了的你要写个类继承AbstractListModel
getElementAt是用来显示数据的,他会显示可视区的数据(表达有问题,你理解一下)然后你写得类作为参数实例化JList还有JList两个方法要调用list.setFixedCellWidth(50);
list.setFixedCellheight(15);

解决方案 »

  1.   

    private DefaultListModel DefaultModel = new DefaultListModel();
    list.setModel(DefaultModel);之后你可以向DefaultModel中Add或Remove数据,可以马上显示出来。
      

  2.   

    慢吗?不觉得public class test extends JFrame {
      private JPanel contentPane;
      private BorderLayout borderLayout1 = new BorderLayout();
      JList jl=null;
      JButton jb=new JButton("addRow");
      Vector v=new Vector();
    public test() {
        this.setSize(400,300);
        contentPane = (JPanel) this.getContentPane();
        contentPane.setLayout(new FlowLayout());
        v.addElement("1");
        jl=new JList(v);
        jl.setFixedCellWidth(50);
        contentPane.add(jl);
        contentPane.add(jb);
        jb.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            addRow(e);
          }
        });
        this.setVisible(true);
    }  protected void processWindowEvent(WindowEvent e) {
        super.processWindowEvent(e);
        if (e.getID() == WindowEvent.WINDOW_CLOSING) {
          System.exit(0);
        }
      }  public void addRow(ActionEvent e) {
        v.addElement("1");
        jl.updateUI();
        jl.validate();
        this.validate();
      }
    }