首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >空指针异常和Swing

空指针异常和Swing
EN

Stack Overflow用户
提问于 2013-09-13 01:04:42
回答 4查看 136关注 0票数 1

嗨,我想让字母x出现在第1-4行,字母y出现在第7-10行。出于某种原因,如果是这样的话,如果是的话,它会起作用,如果是的话,每一行( 1-4行)都会得到"y“。它标记了“读”和“删除此标记”,并表示为“空指针异常”,我在第26行得到了一个错误,该错误是带有frame.add的

代码语言:javascript
运行
复制
import java.awt.Color;
import java.awt.GridLayout;
import java.util.Random;
import java.util.Scanner;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class ButtonGrid {
    JFrame frame=new JFrame();
    JButton[][] grid;
    public ButtonGrid(int width, int length){
        Random r=new Random();
        int w=r.nextInt(13-1)+1;
        frame.setLayout(new GridLayout(width,length));
        grid=new JButton[width][length];
        Scanner g = new Scanner(System.in);
        for(int y=0;y<length;y++){
            for(int x=0;x<width;x++){
                if (y < 4) {
                    grid[x][y]=new JButton("x");-I am trying to set lines 1-4 to x
                }
                else if (y>7){ 
                    grid[x][y]=new JButton("y");-I am trying to set lines 7-10 to y
                }
                frame.add(grid[x][y]);
                else{ "IT MARKS THIS AS WRONG"
                    grid[x][y]=new JButton(" ");
                }
            }
        }
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);``
    }
    public static void main(String[] args) {
        new ButtonGrid(10,10);

    }
}

我认为我所做的一切都是正确的,只是不知道为什么eclipse会给我带来这些错误。请帮帮忙!最后,我将输入第7-10行,但这个测试不起作用。如果有人知道如何帮助我的话,我正在玩棋盘游戏,斯特拉特列戈。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-09-13 01:14:34

要解决其中一个问题:您只能在else块之后立即拥有一个if块。您会得到一个错误,因为您已经将语句frame.add(grid[x][y]);插入到else if { ... }块和else { ... }块之间。

票数 1
EN

Stack Overflow用户

发布于 2013-09-13 01:12:24

frame.add(grid[x][y]);放在else if之后,将导致编译时错误。

代码语言:javascript
运行
复制
if (y < 4) {
                    grid[x][y]=new JButton("x");-I am trying to set lines 1-4 to x
                }
                else if (y>7){ 
                    grid[x][y]=new JButton("y");-I am trying to set lines 7-10 to y
                }
                frame.add(grid[x][y]);
                else{ "IT MARKS THIS AS WRONG"
                    grid[x][y]=new JButton(" ");
                }

请阅读如果-否则教程。

票数 1
EN

Stack Overflow用户

发布于 2013-09-13 01:09:17

您发布的代码不会编译,更不会生成NullPointerException,因为您有一个悬空的else块:

代码语言:javascript
运行
复制
frame.add(grid[x][y]);
else{ // *** this else block is not associated with any if block***
  grid[x][y]=new JButton(" ");
}

您需要只发布导致错误的代码,或者解释发布代码中的实际错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18776628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档