こんにちは、文字 x を 1 ~ 4 行目に表示し、文字 y を 7 ~ 10 行目に表示しようとしています。何らかの理由で、else ifの代わりにelseを置くと機能します.1〜4行を除くすべての行が「y」になります。それはelse readをマークし、このトークンを削除するように言い、Null Pointer Exceptionを言い、frame.addのある行の26行目にエラーが発生します
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 行目に入力する予定ですが、このテストはうまくいきませんでした。誰かが私を助ける方法を知っているなら、私はSwingでボードゲームStrategoをやっています。