gpt4 book ai didi

java - SetLayout函数主要用途

转载 作者:行者123 更新时间:2023-12-01 16:57:21 24 4
gpt4 key购买 nike

 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) 函数的主要用途

最佳答案

您需要阅读教程和 API,因为它们清楚地说明了 setBounds 和 setLayout 的作用,但简要说明如下:

  • setLayout(...)方法允许您设置容器(通常是 JPanel)的布局,例如 FlowLayout、BorderLayout、GridLayout、null 布局或任何所需的布局。布局管理器帮助布置此容器所容纳的组件。
  • setBounds(...)方法用于设置单个组件的位置和大小,并且仅在 null 时有用。布局由容纳该组件的容器使用。
  • 当您将布局设置为 null 时,您就告诉容器它根本不使用布局,因此您作为程序员完全负责设置添加到此容器中的组件的所有大小和位置。
  • 话虽如此,您应该尽量避免使用 null布局和 setBounds(...) 。对于新手 Swing 程序员来说,这似乎是创建复杂布局的最简单方法,但在使用它们时,您创建的 GUI 可能仅在一个平台上看起来不错。更重要的是,他们创建的 GUI 几乎不可能在不引起细微错误的情况下进行维护和升级。如果可能的话就不要使用它们。
  • 请阅读 official layout manager tutorials对此有很好的解释。
<小时/>

请注意,您的代码在 for 循环中重复将容器的布局设置为 null。我不知道为什么它会重复执行此操作,因为您只需要并且想要设置容器的布局一次

关于java - SetLayout函数主要用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30947870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com