DefaultListModel dlm; 申明了,却从来没有实例化过,自然在用的时候会抛出空指针异常。你在构造函数有实例化:DefaultListModel dlm = new DefaultListModel();但是这个是临时变量,和你的类成员dlm是两个变量。你后来在actionPerformed方法中用到的是类的成员,而非构造函数中的临时变量。另外,你的JLIst只是实例化,而没有加到界面上去。你知道用add方法把按钮加到界面上,自然知道如何把JList加到界面上。