当我运行我的代码时,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);
}
答案 0 :(得分:2)
JLabel grid = new JLabel();
正在创建一个空白标签,其默认尺寸为0x0
,因此当您pack
框架时,它已被打包为首选尺寸基本上是0x0
考虑使用像JLabel grid = new JLabel(" ");
之类的东西开始,但我可能会考虑使用&#34;空白&#34;而是指定大小的图标
你也可以使用一些文字并将foreground
(文字)颜色设置为与背景相同的颜色,但我个人使用透明图标,但这就是我
答案 1 :(得分:0)
尝试创建JPanel
并将所有组件放入其中,然后将JPanel
添加到JFrame
。