首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

一个小程序 运行后 小弟我看不懂这个控制台的提示 该如何改啊求详细

2012-11-03 
一个小程序 运行后 我看不懂这个控制台的提示该怎么改啊?求详细。import java.awt.Componentimport java.i

一个小程序 运行后 我看不懂这个控制台的提示 该怎么改啊?求详细。
import java.awt.Component;
import java.io.File;
import java.awt.*;
import javax.swing.*;
public class Gundong {

/**
* @param args
*/
private JPanel p1;
private JLabel AudioFiles;
private JList list;
private JFrame frame;
private JScrollPane test;
private JPanel p2;
private ListModel str;


public Gundong()
{

makeFrame();
frame.setSize(230,400);//设置框架大小。
GetFiles();
}

public void makeFrame()
{
frame = new JFrame(); //新建框架!
//AudioFiles = new JLabel("播放列表");
p1 = new JPanel();
//p2 = new JPanel();
list = new JList(str);
test = new JScrollPane(list);
p1.add(test);
frame.add(p1,BorderLayout.CENTER);
//p2.add(AudioFiles);
//frame.add(p2,BorderLayout.NORTH);
//frame.setResizable(false);//设置框架大小不可调节!
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置右上角关闭而非隐藏。
  frame.setLocationRelativeTo(null);//设置居中显示! 
  frame.pack();
  frame.setVisible(true); //设置可见!

}

public String[] GetFiles()
{
File file=new File("歌曲");
String str[];
str=file.list();
for(int i=0;i<str.length;i++);
//{
// System.out.println(test[i]);
// }
return str;
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
new Gundong();

}

}
 
运行 提示 :

Exception in thread "main" java.lang.IllegalArgumentException: dataModel must be non null
at javax.swing.JList.<init>(Unknown Source)
at Gundong.makeFrame(Gundong.java:33)
at Gundong.<init>(Gundong.java:22)
at Gundong.main(Gundong.java:60)


[解决办法]
主类名和文件名要相同啊 !!!
[解决办法]

Java code
list = new JList(str);
[解决办法]
list = new JList(str);
str没赋过值,为null.
[解决办法]
不用ListModel,直接字符串数组来构造JList对象。
参考一下:
Java code
import java.awt.Component;import java.io.File;import java.awt.*;import javax.swing.*;public class Gundong{/*** @param args*/    private JPanel p1;    private JLabel AudioFiles;    private JList list;    private JFrame frame;    private JScrollPane test;    private JPanel p2;    //private ListModel str;                //没有实现类来实例化,取消。    public Gundong()    {        makeFrame();        frame.setSize(230,400);//设置框架大小。        //GetFiles();                    //这不要了.    }    public void makeFrame()    {        frame = new JFrame(); //新建框架!        // AudioFiles = new JLabel("播放列表");        p1 = new JPanel();        // p2 = new JPanel();        //list = new JList(str);        list = new JList(GetFiles());            //这构造JList()对象换成字符串数组了.        test = new JScrollPane(list);        p1.add(test);        frame.add(p1,BorderLayout.CENTER);        // p2.add(AudioFiles);        // frame.add(p2,BorderLayout.NORTH);        //frame.setResizable(false);//设置框架大小不可调节!        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置右上角关闭而非隐藏。        frame.setLocationRelativeTo(null);//设置居中显示!          frame.pack();        frame.setVisible(true); //设置可见!    }    public String[] GetFiles()    {        File file=new File("歌曲");        //File file=new File("d:\\myjava");//-----我测试用了。        String str[];        str=file.list();        //for(int i=0;i<str.length;i++);        //{        // System.out.println(test[i]);        // }         return str;    }    public static void main(String[] args)     {        // TODO 自动生成的方法存根        new Gundong();    }} 

热点排行