我想要一个带有一个TextArea和一个Button的框架。 当我按下按钮时,TextArea应该显示5个披萨的食物菜单,除了控制台显示
之外,它什么都没有显示let startOfWeek = Date.StartOfWeek([Date]), endOfWeek = Date.EndOfWeek([Date]), yearOfStartOfWeek = Date.Year(startOfWeek), yearOfEndOfWeek = Date.Year(endOfWeek), valueToReturn = if yearOfStartOfWeek = yearOfEndOfWeek then Text.From(Date.StartOfWeek([Date])) & " - " & Text.From(Date.EndOfWeek([Date])) else Text.From(Date.StartOfWeek([Date])) & " - " & Text.From(Date.EndOfWeek(endOfWeek)) in valueToReturn
在windowsStart()方法中,对象存在并且可以调整。 在actionPerformed()方法中,对象是……某种不可见的,不存在?
"Exception in thread "AWT-EventQueue-0"
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at de.kvwl.pizza.MainFrame.actionPerformed(MainFrame.java:54)"
TextArea应该获取ArrayList的值
答案 0 :(得分:3)
您的例外发生在:at de.kvwl.pizza.MainFrame.actionPerformed(MainFrame.java:54)
此操作在windowStart
期间与b.addActionListener(mFrame);
关联。
但是我看到的是,您传递了另一个名为MainFrame
的{{1}}实例作为参数(作为mFrame
)。这个ActionListener
永远不会用
mFrame
简而言之,您有两个实例pPizza = test.csvRead();
:
MainFrame
windowStart
中创建了一个windowsStart
。 最后一个永远不会加载数据列表。解释为什么在actionPerformed
中填充列表而不在windowStart
中填充列表,实际上您使用的是两个不同的实例actionPerformed
和两个列表MainFrame
。
您可以通过删除第二个实例并将第一个实例pPizza
用作this
ActionListener