经过几天的努力,我仍然无法通过在其他语言中使用数组来填充文本区域。我曾尝试使用Google,YouTube,stackoverflow等,但我仍然无法使用任何示例来帮助我这样做。我也引用了Java文本。这正是我想要做的:
public void getDrinks() {
//System.out.println(theDrinks[arrayCount].toString());
for(int i=0; i<arrayCount; i++) {
area.append(theDrinks[i].toString());
}
}
此代码适用于其他语言,但我使用TextArea
或数组的方式有问题,因为我得到一个空指针。我想粘贴整个程序,但这也不起作用。这是唯一可以远程正确粘贴的部分。如果可以,请帮助我。
答案 0 :(得分:2)
一般情况下,当您可以帮助时,您不希望使用arrayCount
之类的变量。这是一个更好的版本:
public void getDrinks() {
for(int i = 0; i < theDrinks.length; i++)
area.append(theDrinks[i].toString());
}
执行此操作时,务必确保area
已经实例化(即不是null
)。
如果我实现这个,我会使用Java的foreach构造,因为我发现它更有表现力。以下代码假定theDrinks
是Drink
个对象的数组。
public void getDrinks() {
if(area != null) {
for(Drink drink : theDrinks) {
area.append(drink.toString());
}
}
}
答案 1 :(得分:0)
我无法解决你的具体问题,如果没有更多的代码,但这里有一些有效的java代码。
import java.awt.BorderLayout;
import java.awt.TextArea;
import javax.swing.JFrame;
public class Driver {
public static void main(String[] args) {
// 1. Create the frame.
JFrame frame = new JFrame("FrameDemo");
// 2. Optional: What happens when the frame closes?
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 3. Create components and put them in the frame.
// ...create emptyLabel...
TextArea area = new TextArea("Area");
frame.getContentPane().add(area, BorderLayout.CENTER);
// 4. Size the frame.
frame.pack();
// 5. Show it.
frame.setVisible(true);
String[] drinks = {"Drink1","Drink2"};
getDrinks(area, drinks);
}
public static void getDrinks(TextArea area, String[] theDrinks) {
// System.out.println(theDrinks[arrayCount].toString());
for (String drink : theDrinks) {
area.append(drink.toString());
}
}
}