2 jdukuangfeng jdukuangfeng 于 2016.03.10 20:52 提问

一个程序里面出现了nopointerexception,但是我觉得没有空变量啊

import javax.swing.*;
import java.awt.*;
public class ex123{
public static void main(String args[]){
wingrid win =new wingrid();
}
}
class wingrid extends JFrame{
GridLayout grid;
JPanel chessboard;
wingrid(){

chessboard=new JPanel();
grid=new GridLayout(12,12);
chessboard.setLayout(grid);
JLabel[][] label=new JLabel[12][12];
for(int i=0;i<12;i++){
for(int j=0;j<12;j++){
label[i][j]=new JLabel();
if((i+j)%2==0)
label[i][j].setBackground(Color.black);
else
label[i][i].setBackground(Color.white);
chessboard.add(label[i][j]);
}
}
add(chessboard,BorderLayout.CENTER);
add(new Button("北方参战者"),BorderLayout.NORTH);
add(new Button("南方参战者"),BorderLayout.SOUTH);
add(new Button("西方参战者"),BorderLayout.WEST);
add(new Button("东方参战者"),BorderLayout.EAST);
setBounds(10,10,570,390);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
validate();
}
}

3个回答

qq_30240925
qq_30240925   2016.03.10 21:02

import javax.swing.*;
import java.awt.*;

public class aa {
public static void main(String args[]) {
wingrid win = new wingrid();
}
}

class wingrid extends JFrame {
GridLayout grid;
JPanel chessboard;

wingrid() {
    chessboard = new JPanel();
    grid = new GridLayout(12, 12);
    chessboard.setLayout(grid);
    JLabel[][] label = new JLabel[12][12];
    for (int i = 0; i < 12; i++) {
        for (int j = 0; j < 12; j++) {

            if ((i + j) % 2 == 0)
            {
                label[i][j] = new JLabel();
                label[i][j].setBackground(Color.black);
                chessboard.add(label[i][j]);
            }
            else
            {
                label[i][i] = new JLabel();
                label[i][i].setBackground(Color.white);
                chessboard.add(label[i][i]);

            }

        }
    }
    add(chessboard, BorderLayout.CENTER);
    add(new Button("北方参战者"), BorderLayout.NORTH);
    add(new Button("南方参战者"), BorderLayout.SOUTH);
    add(new Button("西方参战者"), BorderLayout.WEST);
    add(new Button("东方参战者"), BorderLayout.EAST);
    setBounds(10, 10, 570, 390);
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    validate();
}

}
这样就可以了,没有初始化label[i][i] = new JLabel();

jdukuangfeng
jdukuangfeng 太谢谢了,虽然能运行,但是不太对。首先我觉得label【】【】是在if之前就初始化了。其次运行出来没有黑色斑块啊
2 年多之前 回复
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.10 20:58

看下异常报错指向哪一行呢?就坚持这行所有对象的.操作,排查是否为空。工具是不会有错的,还是仔细排查下吧。要不就是你修正后没有重新编译。

Royal_lr
Royal_lr   Ds   Rxr 2016.03.11 14:18

能运行就可以了,,效果没出来那是你自己的逻辑问题

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
eclipse项目没错但有红叉
eclipse中选择->window->show view->other弹出对话框中选择general下面找problems然后双击 java compiler level does not match the version of the installed java project facet错误的解决 因工作的关系,Eclipse开发的Java项目拷来拷去,有时候会报一个
项目报错但是代码没有错
电脑换了不同版本的Tomcat和JDK后,导入之前的项目出现红叉错误,程序却没有出现错误: 在eclipse的markers标签页下提示2个错误警告: 错误一:Description Resource PathLocation Type Java compiler level does not match the version of theinstalled Java project fac
word程序出现错误
word程序出现错误我 觉得一可能是word程序出现错误,重新安装修复就可以了,但是得有office的安装光盘
关于x5045的英文资料和应用一例
这是我改的一个网站的实验板的程序,刚做好,虽然这个程序很小,但是我觉得对初学者很有用。呵呵,有兴趣就交流一下啊!
面试经历2
楼主,我都失业三个多月了,如果人家问我失业这长时间为什么没找到工作怎么办  --------------------------------------------------------------------------首先,三个月没有工作被面试官怀疑是很正常的。  因为,职场出现空白是职业生涯的大忌。  这也是我后来才明白的。    其次,你不用怕别人怀疑。你要充
eclipse中工程出现红叉但文件中代码没有错误||重新生成R.java文件
今天修改程序出现让人很难理解的错误 程序的文件都没有错误,但工程提示出现错误。 网上提示有些让重新导入工程,(copy一份代码,删掉eclipse中的重新导入) 有些让把工程clear后再次重新编译,(工具栏Project-》clear-》选中自己的工程点击OK) java程序这样是好使的,但Android工程中clear后自动生成的R.java文件会不从在,这样依然会有错误,不能
真是没的说,我也深深感觉这样,现在什么也干不下去,总是心静不下来.想学习,看点书,总是被工作打断.闲下来总想多休息一下,放松一下
真是没的说,我也深深感觉这样,现在什么也干不下去,总是心静不下来.想学习,看点书,总是被工作打断.闲下来总想多休息一下,放松一下原文[转载]行进中开火 Author: Joel Spolsky    原文:http://www.joelonsoftware.com/articles/fog0000000339.html译: Siyan Li 李思延编辑: Paul May 梅普
JavaWeb项目中没有错,但是项目上面显示一个红叉的解决办法
报误信息: Description  Resource Path Location Type Java compiler level does not match the version of the installed Java project facet.出现这个问题的原因是因为,eclipse/myeclipse的jdk编译版本与出现问题的项目JDK编译版本不一致所导致! 工
Eclipse项目报红叉,但是能运行的解决方法
在项目的根目录下找到.settings文件夹org.eclipse.wst.common.project.facet.core.xml和其他配置文件会看见配置jdk版本和tomcat版本比你项目中实际用的版本要低,所以解决这个问题就有3种方案 - 修改配置文件中的版本号和你项目中的一致 - 把你项目中jdk和tomcat版本调整的和配置文件中一致 - 去其他正常的项目中拷贝一份.setti...
我从来没有得到过你,却好像已经失去了你千万次。
为什么从来没有得到的东西,也会让人有一种失去的感觉? 如题!!