如何在Jlist中很好地列出?

时间:2013-04-03 15:31:16

标签: java json swing jlist cellrenderer

我正在制作旅行计划桌面应用程序。 而且我到目前为止只剩下上市了。 我想使用带有defaultListModel的Jlist。 但是如何列出所有这样的???

我想得到的结果是这样的:

line : Spårvagn 6
direction : Kortedala via Sahlgrenska
Starting Location : Brunnsparken, Göteborg
time : 17:27
date : 2013-04-03
track : E 
Destination : Svingeln, Göteborg
time : 17:56
date : 2013-04-03
track : B 
line : Spårvagn 1
direction : Östra Sjukhuset
Starting Location : Brunnsparken, Göteborg
time : 17:30
date : 2013-04-03
track : D 
Destination : Svingeln, Göteborg
time : 17:36
date : 2013-04-03
track : B 
line : Spårvagn 3
direction : Kålltorp
Starting Location : Brunnsparken, Göteborg
time : 17:35
date : 2013-04-03
track : D 
Destination : Svingeln, Göteborg
time : 17:41
date : 2013-04-03
track : B 
line : Spårvagn 6
direction : Kortedala via Sahlgrenska
Starting Location : Brunnsparken, Göteborg
time : 17:36
date : 2013-04-03
track : E 
Destination : Svingeln, Göteborg
time : 18:05
date : 2013-04-03
track : B 
line : Spårvagn 1
direction : Östra Sjukhuset
Starting Location : Brunnsparken, Göteborg
time : 17:40
date : 2013-04-03
track : D 
Destination : Svingeln, Göteborg
time : 17:46
date : 2013-04-03
track : B 

我的代码:

JSONObject destination = (JSONObject) jsonObj.get("Destination");
            String dname = (String) destination.get("name");
            String dtime = (String) destination.get("time");
            String ddate = (String) destination.get("date");
            String dtrack =(String) destination.get("track");

            //set the info about the destination
            TripService.getTrip().setDate(date);
            TripService.getTrip().setName(dname);
            TripService.getTrip().setTime(dtime);
            TripService.getTrip().setTrack(dtrack);

            //Sets line and direction for all trips
/*          
            model.addElement("line : " + line);
            model.addElement("direction : " + direction);

            //set the info about the starting location

            model.addElement("Starting Location : " + name);
            model.addElement("Time : " + time);
            model.addElement("Date : " + date);
            model.addElement("Track : " + track);
*/  

但它在我的控制台中返回[]。 如何完成这个

所有这些仅在我的控制台中列出此输出。但我无法将其转移到我的申请表中。什么是错的,怎么做?

2 个答案:

答案 0 :(得分:1)

问题不在于将数据添加到ListModel。您所要做的就是创建一个包含您想要显示的所有信息的对象,并将该对象添加到模型中。

问题是显示所有信息。为此,您需要一个自定义渲染器。请参阅Writing a Custom Cell Renderer上的Swing教程中的部分。

答案 1 :(得分:0)

DefaultListModel model = new DefaultListModel();
   JList list = new JList(model);

现在使用model.addElement()

在模型中添加数据