【发布时间】:2014-01-18 02:11:27
【问题描述】:
我的问题是无法从树形图中获取对象“项目”(值)。我需要将该信息发送到我的 GUI 类并在 JList 中显示以获取选择列表,因此可以轻松选择歌曲并将其添加到播放列表,但我得到的输出只有“01、02、03、04、05” (钥匙)。请帮忙,因为我是初学者,不知道该怎么做。
public class LibraryData {
private static class Item {
Item(String n, String a, int r) {
name = n;
artist = a;
rating = r;
}
// instance variables
private String name;
private String artist;
private int rating;
private int playCount;
public String toString() {
return name + " - " + artist;
}
}
private static Map<String, Item> library = new TreeMap<String, Item>();
static {
library.put("01", new Item("How much is that doggy in the window", "Zee-J", 3));
library.put("02", new Item("Exotic", "Maradonna", 5));
library.put("03", new Item("I'm dreaming of a white Christmas", "Ludwig van Beethoven", 2));
library.put("04", new Item("Pastoral Symphony", "Cayley Minnow", 1));
library.put("05", new Item("Anarchy in the UK", "The Kings Singers", 0));
}
public static String[] getLibrary() {
String [] tempa = (String[]) library.keySet().toArray(new String[library.size()]);
return tempa;
}
解决方案:
因为我必须将值传递给另一个类:
JList tracks = new JList(LibraryData.getLibrary());
我做了类似的东西,它的作品
public static Object[] getLibrary() {
Collection c = library.values();
return c.toArray(new Item[0]);
谢谢你们,10 个小时后我终于完成了! }
【问题讨论】:
-
请在您尝试获取
Item的位置发布代码。 -
library.get("01");不起作用吗? -
我相信枚举会更合适。
-
@Christian 我的 GUI 类中只有这一点
JList tracks = new JList(LibraryData.getLibrary());