前几天这段代码正在工作。我改变了一些东西并重新运行它,现在它不能按预期工作。显然,我更改的某些内容改变了行为,但我已经返回并恢复了所有这些更改,但它仍然不起作用。忽略那一点信息(开始),为什么这段代码没有在 JPanel 内放置一个 15x15 的 JLabels 网格?
gameBoard.setLayout(new FlowLayout());
for (int i = 0; i < 15; i++)
{
for (int j = 0; j < 15; j++)
{
JLabel tile = new JLabel("");
tile.setHorizontalAlignment(SwingConstants.CENTER);
tile.setPreferredSize(new Dimension(27, 27));
tile.setBorder(new EtchedBorder());
tile.setEnabled(false);
gameBoard.add(tile);
}
}
gameBoard 是通过 NetBeans 的 GUI Builder 定义的 JPanel。它有一个首选大小,一个最大大小(与首选相同)。水平/垂直可调整大小选项被禁用,但是当此代码运行时,每个按钮都水平延伸成一行而不会中断。
如果我理解正确,FlowLayout 应该在元素到达其包含元素的末尾时对其进行包装。这发生在今天之前,我真的不知道为什么这种行为停止了?