public void init_numSolvers() {
for (x = 0; x < 9; x++) {
n++;
num[x] = new Button("" + n);
add(num[x]);
num[x].setBounds(num_x, num_y, 40, 40);
setLayout(null);
num_x += 40;
}
为什么setBounds()函数在没有setLayout(null)的情况下不起作用我只想了解setLayout(null)函数的主要用途
答案 0 :(得分:5)
您需要阅读教程和API,因为它们清楚地说明了setBounds和setLayout的作用,但简要说明了一下:
setLayout(...)
方法允许您设置容器的布局,通常是JPanel,表示FlowLayout,BorderLayout,GridLayout,null布局或任何所需的布局。布局管理器有助于布置此容器所拥有的组件。setBounds(...)
方法用于设置单个组件的位置和大小,仅在包含此组件的容器使用null
布局时才有用。null
布局和setBounds(...)
。对于新手Swing程序员来说,这似乎是创建复杂布局的最简单方法,在使用它们时,您创建的GUI可能只在一个平台上看起来很好。更重要的是,他们创建了几乎不可能维护和升级的GUI,而不会造成微妙的错误。如果可能的话,不要使用它们。请注意,您的代码会在for循环中重复将容器的布局设置为null。我不知道为什么它会反复这样做,因为你只需要并且想要设置容器的布局一次。