java - JLabel对象数组初始化问题

标签 java arrays initialization

所以,我将其初始化为数组对象,当我去初始化各个对象时,它不会给它们一个值

/* 
-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/

相关文章:

c++ - 检查 char 数组的所有元素

c# - 在 C# 中为声明后的数组赋值或创建和初始化数组之间有什么区别?

java - JBoss AS 7 的 Maven 构建失败 Hello world 示例

java - Android - startActivityForResult 传递对象的 ArrayList 返回

Java TreeMap 放置方法

arrays - 在 Rust 中传递数组的数组(或切片的切片)

java - Java 变量中的 scala.Int 存储来自 Scala 函数的值

c++ - 派生类的聚合初始化

c - c语言中的字符串

ios - Swift 对象初始化(类工厂方法、默认初始化、便捷初始化)