当前位置: 首页 > 面试题库 >

需要绝对定位时,空布局管理器的替代解决方案

欧阳俊捷
2023-03-14
问题内容

几个月前,我阅读了Swing教程http://zetcode.com/tutorials/javaswingtutorial/resizablecomponent/,以了解如何在Swing中实现可调整大小的组件。

本教程介绍了使用空LayoutManager以便绝对定位子组件的可能性。

在与另一个主题相关的讨论中,@ Andrew
Thompson指出使用空布局是一个坏主意。本文http://download.oracle.com/javase/tutorial/uiswing/layout/none.html也描述了不希望使用null布局管理器的情况,无论如何它说在某些情况下这可能是有用的。

在以下情况下:

  1. 我需要为JPanel的子组件绝对定位
  2. 我需要为子组件实现自己的边界框条件(以建立可能的重叠情况)
  3. 我需要调整JPanel的子组件的大小

在上述情况下使用空布局管理器是否正确?

还是有其他更好的解决方案,可以使用JPanel容器组件的布局管理器来实现该目标?

提前致谢


问题答案:

最好的解决方案是LayoutManager使用您要寻找的功能和控件来实现自己的(或扩展现有的,如果确实很接近您的需求)。您的绝对定位要求将完全成为布局管理器的一种方法。

例如,在过去,我遵循过一些技术来扩展FlowLayout以使其具有在包含在中时正确包装元素的能力JScrollPane
这是一个示例,尽管这与我使用的不一样。



 类似资料:
  • 我正在用java创建一个纸牌游戏,以更好地学习GUI组件。我似乎理解我正在使用的各种类,但是在窗口中将组件定位到我想要的位置时遇到了困难。 我试图设置窗口的格式类似于基本的纸牌布局(甲板,丢弃堆,4套衣服堆叠在顶部和7个纸牌堆叠在他们下面)。我的想法是,我需要在JFrame组件中使用一个绝对布局来手动地将不同的堆栈元素放在它们应该放在的位置(也许这不是最好的方法?)。为此,我尝试使用、、等,但似乎

  • 了解 CSS 中属性的值及其特性, 透彻分析问题和需求才可以选择和设计最适合的布局解决方案。 居中布局 水平居中 子元素于父元素水平居中且其(子元素与父元素)宽度均可变。 inline-block + text-align <div class="parent"> <div class="child">Demo</div> </div> <style> .child { disp

  • 本文向大家介绍说说你对相对定位、绝对定位、固定定位的理解相关面试题,主要包含被问及说说你对相对定位、绝对定位、固定定位的理解时的应答技巧和注意事项,需要的朋友参考一下 https://www.w3schools.com/css/css_positioning.asp https://www.w3school.com.cn/cssref/pr_class_position.asp

  • 要使用自定义的布局管理器,我们可以重新实现 addItem(), sizeHint(), setGeometry(), itemAt() 和 takeAt()这些方法。为了确保当应用程序界面的空间非常小时,布局大小不会为 0,我们需要重载 minimumSize()方 法。日常中我们也经常看到这样的情形,即应用程序窗口的长和宽的尺寸是互为依存的,那 么我们就需要重载 hasHeightForWid

  • *label1:combo1 label2:combo2 label3:combo3 label4:text1 label5:text2 label6:text3*

  • 我需要在中制作这样的表。 有什么想法如何做到这一点,以获得像下面图片上的布局吗?