Java swing对象数组返回空指针异常

Java swing对象数组返回空指针异常,java,arrays,swing,nullpointerexception,Java,Arrays,Swing,Nullpointerexception,这是我的代码段。它返回一个空指针异常..jlabel1已设置并正在工作 JLabel j[]=new JLabel[10]; i=0; j[i]=new JLabel(); j[i].setText("1"); this.add(j[i]); 从评论中编辑 JLabel j[]=new JLabel[50]; try { Rectangle bounds = jLabel1.getBounds(); j[i].setText("1"); this.add(j[i])

这是我的代码段。它返回一个空指针异常..jlabel1已设置并正在工作

JLabel j[]=new JLabel[10];
i=0;    
j[i]=new JLabel();
j[i].setText("1");
this.add(j[i]);
从评论中编辑

JLabel j[]=new JLabel[50]; 
try { 
  Rectangle bounds = jLabel1.getBounds(); 
  j[i].setText("1"); 
  this.add(j[i]); 
  j[i].setBounds(jLabel1.getX(),jLabel1.getY()+50 ,jLabel1.getHeight(),jLabel1.getWidth()); } catch(Exception e) { 
  System.out.println(e.toString()); 
} 

评论太短了。尝试发布一个

这似乎对我有用:

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class Test {

    protected void initUI() {
        final JFrame frame = new JFrame();
        frame.setTitle("Test JLabel");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        class TestPanel extends JPanel {
            int i;

            public TestPanel() {
                JLabel j[] = new JLabel[10];
                i = 0;
                j[i] = new JLabel();
                j[i].setText("1");
                this.add(j[i]);
            }
        }
        frame.add(new TestPanel());
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new Test().initUI();
            }
        });
    }

}

问题是你忘了带钥匙

j[i] = new JLabel();
在你在评论中发布的片段中,尽管它包含在你的问题中

NullPointerException通常很容易调试,因为您只需跟踪堆栈跟踪即可发现什么是null。如果有疑问,只需在该行上放置断点并使用调试器即可


要获得stacktrace,您可以使用e.printStackTrace或简单地删除try-catch块,因为简单地为所有异常设置try-catch块是不好的做法

此代码位于何处?哪种方法/函数?您的问题中没有jlabel1,jlabel1已经设置在哪里,并且正在工作为了更好地理解异常打印堆栈跟踪。@HarshitSharaff您不知道try/catch吗?JLabel j[]=new JLabel[50];尝试{Rectangle bounds=jLabel1.getBounds;j[i].setText1;this.addj[i];j[i].setBoundsjLabel1.getX,jLabel1.getY+50,jLabel1.getHeight,jLabel1.getWidth;}catch异常e{System.out.printlne.toString;}这个代码段给出了java.lang。NullPointerException@HarshitSharaff如果没有一个完整的例子,很难说。jLabel1为空或j[i]为空。没有上下文,我们帮不了你更多。我们不是胡乱猜测的大师。