私は迷路作成プログラムを持っていて、それをguiに入れたいと思っています。私の迷路は2D配列になっているので、JPanelで2DラベルのJLabelを作成し、パスか壁かに基づいて各ラベルに色を割り当てようと計画しました。 JLabelの2D配列を作成してパネルに追加することはできますが、JLabelを実行するとすべてのJLabelsが右に1スペース分移動しますので、左上隅に空白があり、列が1行、行が1行少なくなりますそうであると思われる。 GUIのJLabelの2D配列をGridLayoutに出力する
画像:
ここに私のコードです。私は問題が何であるか分かりません。 GridLayoutのサイズを変更し、ループの回数を変更し、rowとcolの値を変更しています(両方とも現在10です)。手動でその場所に余分なJLabelを作成しようとしましたが、ダイスはありません。
public Maze() {
JPanel panel = new JPanel();
getContentPane().add(panel);
int row = MazeCreator.r;
int col = MazeCreator.c;
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 500, 500);
getContentPane().setLayout(new GridLayout(row, col));
JLabel[][] grid= new JLabel[row][col];
for (int i = 0; i < row; i++){
for (int j = 0; j < col; j++){
grid[i][j] = new JLabel();
grid[i][j].setBorder(new LineBorder(Color.BLACK));
//grid[i][j].setBackground(Color.black);
grid[i][j].setOpaque(true);
super.add(grid[i][j]);
}
}
grid[0][0].setBackground(Color.red);
}
私は私が言ったように、手動で入れて、列から1を減算することにより、少なすぎる行とあまりにも多くのcolsの問題を「解決」と行に1を追加し、それは唯一の代わりに100の99件のJLabelを作成し、することができます左上のJLabelは機能しません。
super.add(grid [i] [j]);なぜ??あなたは神に話しかけていますか? – gpasch