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

问题描述

一个程序里面出现了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();
}
}

解决方案

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();

解决方案二:

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

解决方案三:

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

时间: 2024-09-17 09:20:10

swing-一个程序里面出现了nopointerexception,但是我觉得没有空变量啊的相关文章

java swing 一个窗口打开新创口 加上go()程序就死掉了

问题描述 java swing 一个窗口打开新创口 加上go()程序就死掉了 import javax.swing.*; import java.awt.Rectangle;import java.awt.event.*; public class Swing7 extends JFrame implements ActionListener { JButton jb = new JButton(); public Swing7() { this.setTitle(""Java--&q

swing-我要用java写一个Swing界面程序,实现对服务器操作的监控

问题描述 我要用java写一个Swing界面程序,实现对服务器操作的监控 管理员用户监测服务器中进行特定操作,来了解其他用户是否有违规操作,有什么方法可以实现吗?

swing-Java Swing小程序,哪里不对?

问题描述 Java Swing小程序,哪里不对? 我先是用Java写了一个小程序: 运行以后得到了正确的结果,也就是输出123.但是把它改成Java Swing以后,奇怪的事情发生了:结果只能输出最后一位,也就是3. 这是Java Swing的代码片段. 我想知道是什么地方出了问题:以及要怎样修改,才能得到正确的结果.谢谢大家. 解决方案 t1.setText(t1.getText() + s2) 解决方案二: 问题在于你的处理代码中,每次都是s1.setText(s2),将解析到的某个数据赋值

运行效率-为程序分配更多系统资源,或者说怎样提高一个程序的cpu使用率?

问题描述 为程序分配更多系统资源,或者说怎样提高一个程序的cpu使用率? 写了一个图像识别程序,就是运行效率太低,想给程序分配更多的cpu时间让他运行快点. 那些大型游戏是采用什么机制能够占那么多的系统资源的? 解决方案 采用多线程.如果你不用多线程,你只能用 1/计算机逻辑cpu数量 的cpu占用率. 解决方案二: 也要看语言的,像Java/C语言都是可以100%调用CPU的,而Python是不能的,. 解决方案三: 1.多线程,比如线程1处理第一部分,线程2处理第二部分,,,协调好,另外如果

c语言-编写一个程序,打印输入中的单词长度的直方图。垂直方图。

问题描述 编写一个程序,打印输入中的单词长度的直方图.垂直方图. 直方图是如何理解????求教这道题~~ 这道题目是书上的!有没有懂的大神.给讲解啊. 解决方案 问题是怎么解决的? 我想到的就是算好格式用printf()一行行的输入,最后拼成直方图.

c语言-C语言的一个程序,求大神

问题描述 C语言的一个程序,求大神 三.实验内容 1.实验题目:手动输入10个0~100之内的整数,按从小到大排列输出.: (1)要求 排序算法: 使数组从小到大排序的规则如下: ⑴ 设数组为a[0],a[1],-,a[n-1],构造i循环从0,1,-,n-2变化,构造j循环从i+1,i+2,-,n-1变化,即j>i. ⑵ 对于任何一个a[i],如果a[i]>a[j],表面前面有一个元素a[i]比它后面的元素a[j]大,a[i]应该在后面,a[j]应该在前面,交换a[i]与a[j]. ⑶ 对于

在一个程序后面运行另一个程序

问:怎样在一个程序运行后面运行另一个程序? ●1. 在一个程序里面运行另一个程序的最简单的方法是把它们依次列入一个批处理文件(扩展名为.BAT的文件),在执行该批处理文件时,其中所列程序就会自动运行.在C或DOS中,都没有一种特定的方法来完成"在一个程序结束后运行另一个程序"这样一种函数调用.然而,C提供了两组函数,它们允许一个程序随时可以运行另一个程序,而后者的运行将结束前者的运行.如果你将这样的函数调用放在第一个程序的末尾,就能达到上述目的.C提供的这两组函数是exec()和spa

怎样通过一个程序来生成另一个程序

前不久大家都在讨论怎样通过一个程序来生成另一个程序,我提出了将另一个程序当资源文件包含在程序中一起编译,然后在程序运行时根据需要再重新生成出来,下面是我的一个例子, 在这里,我将windows自带的写字板(writer.exe)当资源. 下面是源代码 //资源文件writer.exe长度为204800,在资源文件中定义为"CUSTOM"资源,编号为1111 HRSRC  hMyRes;  //resource handle HGLOBAL  hgpt;  //resource poin

一个程序员的创业失败教训

这段经历是悲伤的,也是快乐的,毕竟创业是充满激情的,想着自己以后可以不再给人打工了,可以给自己打工了,一个程序员写了很多年的程序之后,能够有机会给自己写程序,现在想着都是兴奋的,心情久久不能平静. 创业的那个项目是我自己带队开发出来的一个大型的物流信息平台,技术团队都是我一手带出来的,每个人都有自己的技术特色,有的擅长客户端展现,有的擅长后台业务逻辑,有的则对总体架构把握很好,我认为这个团队是一个配合很好的团队;我们的运营模式是物流管理软件+物流电子商务+GPS在线运营平台一起运营.该项目的赢利