【问题标题】:Adding JButton in JPanel using loop (for)?使用循环(for)在JPanel中添加JButton?
【发布时间】:2013-06-02 15:20:14
【问题描述】:

我正在尝试制作一个战舰游戏,但在使用循环时我没有成功在 JPanel 中添加 JButtons。我可以一一添加,但不能在 for 循环中添加。

我没有收到任何错误,只有在编译时;

"Exception in thread "main" java.lang.NullPointerException
at Allo.<init>(Allo.java:38)
at Allo.main(Allo.java:55)"

代码如下:

import javax.swing.JFrame;
import java.awt.GridLayout;
import javax.swing.JPanel;
import javax.swing.SpringLayout;
import java.awt.Color;
import javax.swing.JButton;  

public class Allo {    

  JFrame fenetre = new JFrame();
  static JButton[][] bouton; 

  public Allo(int width, int height) {    
     fenetre.setSize(800, 500);
     fenetre.setResizable(false);
     SpringLayout springLayout = new SpringLayout();
     fenetre.getContentPane().setLayout(springLayout);    
     JPanel panel = new JPanel();
     panel.setBackground(Color.DARK_GRAY);    
     fenetre.getContentPane().add(panel);
     SpringLayout sl_panel = new SpringLayout();
     panel.setLayout(sl_panel);
     for (int r = 0; r < 16; r++)
     {
        for (int c = 0; c < 8; c++)
        {    
           bouton[r][c] = new JButton("("+r+","+c+")");   
           panel.add(bouton[r][c]);    
           //fenetre.getContentPane().add(bouton[r][c]);
        }
     }
     fenetre.setVisible(true);
   }    

    public static void main(String[] args) {
    // TODO Auto-generated method stub
       new Allo(16,8);   
   }
}

【问题讨论】:

    标签: java swing loops jpanel jbutton


    【解决方案1】:

    你还没有初始化你的按钮数组,所以下面一行会抛出异常:

    bouton[r][c] = new JButton("("+r+","+c+")");  
    

    您的代码缺少以下行:

    bouton = new JButton[16][8];
    

    【讨论】:

    • 我不敢相信,令人难以置信的好意是陛下+1
    猜你喜欢
    • 2020-07-09
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 2022-07-24
    • 2011-05-06
    • 2013-05-04
    • 1970-01-01
    相关资源
    最近更新 更多