【发布时间】:2013-03-31 02:12:21
【问题描述】:
我正在尝试调用一个类中的 JList 并将其添加到另一个类中但无济于事,因为它告诉我有关静态和非静态函数的信息
我在一个类中有一个名为 finalList 的 ArrayList,其中填充了值,并且已通过将列表打印出来进行检查。
然后我在另一个名为cupboard 的文件中有另一个类,我想将项目放入那里的JList 中。
finalList.add(si);
是添加项目的位置,其中 si 是数组项目,finalList 是新数组,然后在我的橱柜类文件中,目前我有
public Cupboard()
{
cupboardContent = new JList(ShoppingList.finalList.toArray());
}
其中的cupboardContent 是我希望物品去往的新JList。
如果有人有任何想法,谢谢。我敢肯定这很简单,我只是很愚蠢!似乎在将普通流程与 GUI 结合起来时,由于我对使用 GUI 很陌生,所以我很难建立联系!
//编辑
没错,第一段代码就是将项目添加到数组中绝对没问题,但我需要弄清楚如何在新类中调用它。 目前,这就是我所拥有的
public class KitchenCupboard extends JPanel //implements ActionListener
{
private JList cupboardContent;
private JButton usedItem;
ShoppingList items = new ShoppingList();
public KitchenCupboard()
{
System.out.println(ShoppingList.finalList);
cupboardContent = new JList(items.finalList.toArray());
cupboardContent.setVisibleRowCount(10);
cupboardContent.setFixedCellHeight(30);
cupboardContent.setFixedCellWidth(200);
cupboardContent.setFont(new Font ("sansserif", Font.BOLD, 13));
cupboardContent.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
add(new JScrollPane(cupboardContent));
}
}
ShoppingList 中的数组是
static ArrayList<ShoppingItem> finalList = new ArrayList<ShoppingItem>();
它使用两个类/文件:ShoppingList.java 和 KitchenCupboard.java
【问题讨论】:
-
噢!是的,这就是问题所在!虽然似乎仍然无法将值放入 JList,但它现在正在运行!
-
您需要某种方式将 finalList 的引用从您的 ShoppingList 传递到您的橱柜
-
ShoppingList items = new ShoppingList();如果我使用类似的东西,它不会调用 finalList 是吗?我刚刚尝试过与 cupboardContent = new JList(items.finalList.toArray());但仍然没有帮助!抱歉,我有一个晚上什么都想不通!
-
人们似乎建议您将 ShoppingList.finalList 设为静态。我个人会避免这种情况,除非你能坚定地保证整个程序中只有一个 ShppoingList - 恕我直言
标签: java swing user-interface arraylist jlist