Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 匿名ActionListener类异常“;NullPointerException“;_Java_Swing_Nullpointerexception_Actionlistener_Anonymous Class - Fatal编程技术网

Java 匿名ActionListener类异常“;NullPointerException“;

Java 匿名ActionListener类异常“;NullPointerException“;,java,swing,nullpointerexception,actionlistener,anonymous-class,Java,Swing,Nullpointerexception,Actionlistener,Anonymous Class,在for循环中,我想 初始化JButtons[]基站 将按钮添加到面板窗格3 向每个JButton添加一个ActionListener 到目前为止,我得到的是: for(int i = 0 ;i < bts1.length ; i++){ bts1[i] = new JButton(""+i); pan3.add(bts1[i]); //The NullPointerException happens after this line .

在for循环中,我想

  • 初始化JButtons[]基站
  • 将按钮添加到面板窗格3
  • 向每个JButton添加一个ActionListener
到目前为止,我得到的是:

for(int i = 0 ;i < bts1.length ; i++){
        bts1[i] = new JButton(""+i);
        pan3.add(bts1[i]);
        //The NullPointerException happens after this line . 
        bts[i].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent ae){
                int j = 0 ;
                screen.setText(screen.getText()+bts[j].getText());
                j++;
            }
        });
    }
for(int i=0;i
我的问题是如何解决NullPointerException? 笔记 对于j,我添加它是因为当我尝试使用I时,出现了编译器错误,

请尝试以下操作:
try this:
for(int i = 0 ;i < bts1.length-1 ; i++){
   //rest of your code
}
对于(int i=0;i
因为由10个元素组成的数组包含索引为0到9的元素,而不是索引为0到10的元素。

请尝试以下操作:
对于(int i=0;i
因为由10个元素组成的数组包含索引为0到9的元素,而不是索引为0到10的元素。

请尝试以下操作:
对于(int i=0;i
因为由10个元素组成的数组包含索引为0到9的元素,而不是索引为0到10的元素。

请尝试以下操作:
对于(int i=0;i

因为由10个元素组成的数组包含索引为0到9的元素,而不是索引为0到10的元素。

在将按钮添加到面板之前。首先需要为按钮添加侦听器

请先试用以下代码

    //The NullPointerException happens after this line . 
    bts[i].addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent ae){
            int j = 0 ;
            screen.setText(screen.getText()+bts[j].getText());
            j++;
        }
    });

    **pan3.add(bts1[i]);**

在将按钮添加到面板之前。首先需要为按钮添加侦听器

请先试用以下代码

    //The NullPointerException happens after this line . 
    bts[i].addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent ae){
            int j = 0 ;
            screen.setText(screen.getText()+bts[j].getText());
            j++;
        }
    });

    **pan3.add(bts1[i]);**

在将按钮添加到面板之前。首先需要为按钮添加侦听器

请先试用以下代码

    //The NullPointerException happens after this line . 
    bts[i].addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent ae){
            int j = 0 ;
            screen.setText(screen.getText()+bts[j].getText());
            j++;
        }
    });

    **pan3.add(bts1[i]);**

在将按钮添加到面板之前。首先需要为按钮添加侦听器

请先试用以下代码

    //The NullPointerException happens after this line . 
    bts[i].addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent ae){
            int j = 0 ;
            screen.setText(screen.getText()+bts[j].getText());
            j++;
        }
    });

    **pan3.add(bts1[i]);**

您将
JButton
初始化为
bts1
,并将其称为
bts
。我认为这是错误的原因。
而且

声明
inti=0
作为全局范围
用于(i=0;i
则可以使用
i
而不是
j

或按以下方式使用:

for(int i = 0 ;i < bts1.length ; i++){
        bts1[i] = new JButton(""+i);
        pan3.add(bts1[i]);
        final int j=i; 
        bts1[i].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent ae){                   
                screen.setText(screen.getText()+bts1[j].getText());
            }
        });
    }
for(int i=0;i
您将
JButton
初始化为
bts1
,并将其称为
bts
。我认为这是错误的原因。
而且

声明
inti=0
作为全局范围
用于(i=0;i
则可以使用
i
而不是
j

或按以下方式使用:

for(int i = 0 ;i < bts1.length ; i++){
        bts1[i] = new JButton(""+i);
        pan3.add(bts1[i]);
        final int j=i; 
        bts1[i].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent ae){                   
                screen.setText(screen.getText()+bts1[j].getText());
            }
        });
    }
for(int i=0;i
您将
JButton
初始化为
bts1
,并将其称为
bts
。我认为这是错误的原因。
而且

声明
inti=0
作为全局范围
用于(i=0;i
则可以使用
i
而不是
j

或按以下方式使用:

for(int i = 0 ;i < bts1.length ; i++){
        bts1[i] = new JButton(""+i);
        pan3.add(bts1[i]);
        final int j=i; 
        bts1[i].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent ae){                   
                screen.setText(screen.getText()+bts1[j].getText());
            }
        });
    }
for(int i=0;i
您将
JButton
初始化为
bts1
,并将其称为
bts
。我认为这是错误的原因。
而且

声明
inti=0
作为全局范围
用于(i=0;i
则可以使用
i
而不是
j

或按以下方式使用:

for(int i = 0 ;i < bts1.length ; i++){
        bts1[i] = new JButton(""+i);
        pan3.add(bts1[i]);
        final int j=i; 
        bts1[i].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent ae){                   
                screen.setText(screen.getText()+bts1[j].getText());
            }
        });
    }
for(int i=0;i
您正在使用两种不同的jbutton数组,
bts
bts1

  • 在循环中,您正在创建一个JButton并将其分配给
    bts1[i]
  • 在ActionListener部分,您正在访问bts[j]

您是否也在某处初始化了bts[j]
?如果不是,你会遇到NPE

您正在使用两种不同的jbutton数组,
bts
bts1

  • 在循环中,您正在创建一个JButton并将其分配给
    bts1[i]
  • 在ActionListener部分,您正在访问bts[j]

您是否也在某处初始化了bts[j]
?如果不是,你会遇到NPE

您正在使用两种不同的jbutton数组,
bts
bts1

  • 在循环中,您正在创建一个JButton并将其分配给
    bts1[i]