繁体   English   中英

SetLayout函数的主要用途

[英]SetLayout Function main purpose

 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;
    }

为什么没有setLayout(null)的setBounds()函数不起作用,我只想了解setLayout(null)函数的主要目的

您将要阅读这些教程和API,因为它们清楚地阐明了setBounds和setLayout的功能,但简要介绍了:

  • setLayout(...)方法允许您设置容器的布局,通常是JPanel,例如FlowLayout,BorderLayout,GridLayout,空布局或所需的任何布局。 布局管理器帮助布局此容器保存的组件。
  • setBounds(...)方法用于设置单个组件的位置和大小,仅在包含此组件的容器使用null布局时才有用。
  • 当将布局设置为null时,您告诉容器它根本没有使用布局,因此程序员将完全负责设置添加到此容器的组件的所有大小和位置。
  • 话虽如此,您应该努力避免使用null布局和setBounds(...) 对于新手Swing程序员来说,这似乎是创建复杂布局的最简单方法,当使用它们时,您创建的GUI可能只在一个平台上看起来不错。 更重要的是,他们创建了几乎不可能进行维护和升级而又不会引起细微错误的GUI。 只是尽可能不要使用它们。
  • 请阅读官方的布局管理器教程 ,因为那里对此有很好的解释。

请注意,您的代码在for循环中反复将容器的布局设置为null。 我不知道为什么它这样做,因为反复只需要并要设置一个容器的布局一次

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM