我正在完成类(class)作业,但我需要一些帮助来理解这一点:
“注意:您的应用程序应保持按钮和复选框的相对位置 当应用程序的框架根据布局管理器和技术调整大小时 模块中涵盖的特性。 IE。你不应该选择绝对坐标 将 JComponent 放置在屏幕上但相对定位,即组件 X 相对于 组件 Y 的右侧和组件 Z 的左侧,这些相对位置应 如果用户调整应用程序框架的大小,则保持不变。”
这是否意味着我不使用BoxLayout.X/Y_AXIS
?绝对坐标?
据我了解,我必须使用多个面板?如果是这样,我的代码包含登录信息,当我登录时,我将如何更改框架的颜色?
最佳答案
在 JFC/Swing 应用程序中布局组件基本上有两种方法:
- 为每个容器分配一个负责布局的布局管理器;请参阅 @Shakedown 提供的链接
- 为每个 JComponent 分配一个其左上角的绝对位置,从顶级容器的 (0,0) 开始计算左上角的像素 ( see here对于那是什么)组件所在;请参阅this tutorial关于绝对定位。
布局管理器实际上所做的是为每个 JComponent 分配一个绝对位置,该绝对位置源自运行时布置组件的布局,动态 - 通常使用 JComponent 的 PreferredSize
;例如,FlowLayout
将为每个 JComponent 分配一个绝对位置,使其完全适合其前面的 JComponent 的右侧,并在需要时换行。调整容器大小时,其中的所有组件都将重新计算其位置。请参阅here了解详情。
关于您关于 BoxLayout
的问题,它是一个布局管理器; BoxLayout.X_AXIS
和 BoxLayout.Y_AXIS
用于确定 BoxLayout 管理的 JComponent 的排列方向;它们不是指绝对定位。请参阅the Javadocs on BoxLayout和 the Java tutorial on BoxLayout了解详情。
总而言之,您的任务是使用布局管理器;标准 java 库中提供的不同布局管理器在教程中进行了足够详细的描述(请参阅链接,浏览站点)。玩得开心!
关于java - 相对定位和绝对坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8453258/