所以,我将其初始化为数组对象,当我去初始化各个对象时,它不会给它们一个值
/*
-A java program GUI for Food to allow user to type the food
*/
public class Catagorygui extends JFrame implements ActionListener{
//attributes
JPanel panel;
JButton button;
JFrame frame;
JLabel item;
JTextField item1;
JLabel cost;
JTextField cost1;
JLabel percentused;
JLabel name;
JTextField name1;
JLabel paidupfront;
JTextField paidupfront1;
public Appartment2 g=new Appartment2();
private static String rec=" ";
private JTextField [] upfront=new JTextField[g.getPeople().size()];//must initialize
private JTextField [] percent=new JTextField[g.getPeople().size()];
private JLabel [] usernames=new JLabel[g.getPeople().size()];//for loop that gives them values
private int a;
public Catagorygui (){
g.addPerson("Ali");
g.addPerson("Kacie");
for(int i=0;i<a;i++)
{
usernames[i]=new JLabel("poop");//somehow not initializing it
percent [i]=new JTextField(10);
upfront [i]=new JTextField(10);
percent[i].addActionListener(this);
}
System.out.println(g.getpeople().get(0).getName());//ali
System.out.print(usernames[0]);//SAYS INDEX OUT OF BOUNDS, should say'poop'
//
a=g.getpeople().size();
最佳答案
for (int i=0; i<a; i++)
是的,继续迭代,同时 i < a
,但是 a
是什么? ?你在哪里初始化的?任何int
基本类型的默认值为 0
在 java 。所以0 < 0
始终为 false,并且不会进行任何迭代。
关于java - JLabel对象数组初始化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36665728/