当我运行代码时,JFrame 窗口显示标题框架的最小版本,需要调整其大小才能实际显示任何内容。通常这是由于最后缺少 pack(( 或 setVisible(true(,但在这种情况下并非如此。这是代码:
public static void main(String[] args) throws FileNotFoundException {
Boolean[][] maze = Exercise4.readMaze();
int row = maze.length;
JFrame f = new JFrame("Maze");
f.setLayout(new GridLayout(row, row));
for (int i = 0; i < row; i++) {
for (int j = 0; j < row; j++) {
JLabel grid = new JLabel();
grid.setOpaque(true);
if (maze[i][j].equals(false))
grid.setBackground(Color.black);
else grid.setBackground(Color.white);
f.add(grid);
}
}
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
JLabel grid = new JLabel();
正在创建一个空白标签,它的默认大小将0x0
,因此当您pack
框架时,它已被打包为首选大小,基本上0x0
考虑使用类似 JLabel grid = new JLabel(" ");
的东西开始,但我可能会考虑使用指定大小的"空白"图标
您也可以使用一些文本并将foreground
(文本(颜色设置为与背景相同的颜色,但我个人会使用透明图标,但这就是我
尝试创建一个JPanel
并将所有组件放在其中,然后将JPanel
添加到JFrame
。