gpt4 book ai didi

java - GridBagLayout 中最轻量级的间隔组件

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:12:59 25 4
gpt4 key购买 nike

在 GridBagLayout 中,哪个组件最适合在面板中提供空白空间?理想情况下,我想使用具有以下功能的组件:

  1. 低开销
  2. 当不需要空白空间时没有副作用(即没有最小尺寸)
  3. 一个简单的构造函数(无参数)

JPanel 违反了上面的#2。 Box 需要一个构造函数参数(上面的#3),在这种简单的情况下实际上没有必要。 JLabel 运行良好,但我担心它可能会产生一些开销,尽管不可否认它可能非常低。

匿名类似乎也能正常工作(即“new JComponent() { }”),但每次我使用它时都会添加一个额外的 .class 文件。我想它不会比任何给定的事件处理程序有更多的开销。是否值得为此创建一个派生自 JComponent 的自定义零实现组件?是否有我缺少的现有组件?

仅供引用,GridBagLayout 是我所在团队的限制之一,因此其他布局不是一种选择。

最佳答案

您提到了 Box 但它可以以“轻量级”方式与以下四个仅返回组件的静态方法一起使用。我一直在用这些。它们在绘画方面是不可见的。在你的情况下,看起来胶水是可行的方法。一个简单的构造函数(这是一件坏事!),低开销。不需要空间时的副作用完全取决于您如何布局 gridbag。

panel.add( Box.createHorizontalGlue() );
panel.add( Box.createVerticalGlue() );
panel.add( Box.createHorizontalStrut( int width ) );
panel.add( Box.createVerticalStrut( int width ) );

此处的 JavaDoc:http://java.sun.com/javase/6/docs/api/javax/swing/Box.html

关于java - GridBagLayout 中最轻量级的间隔组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/935293/

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