我正在完成课程作业,但我需要一些帮助来理解这一点:
“注意:您的应用程序应保持按钮和复选框的相对位置 当应用程序的框架根据布局管理器和技术重新调整大小时 模块中涵盖的内容。即你不应该选择绝对坐标 将JComponents放在屏幕上但相对定位,即组件X是 组件Y的右侧和组件Z的左侧,这些相对位置应该是 如果用户调整应用程序框架的大小,则进行维护。“
这是否意味着我不使用BoxLayout.X/Y_AXIS
?绝对坐标?
根据我的理解,我必须使用几个面板?如果是这样,我的代码包含一个登录名,当我登录时如何更改框架的颜色?
答案 0 :(得分:4)
这听起来像是说你需要使用布局管理器而不是绝对定位。是的,您最终会使用多个组件(可能是JComponent
或JPanel
),每个组件都有自己的布局管理器。您可以通过从独立组件开始并使用布局管理器将它们组合在另一个组件中来构建UI。
从这里开始:Laying Out Components
如果您有特定问题,例如更改相框的颜色,最好将其作为一个单独的问题(假设尚未存在类似问题)。
答案 1 :(得分:4)
在JFC / Swing应用程序中布局组件基本上有两种方法:
布局管理器实际上做的是为每个JComponent分配一个绝对位置,该位置是在运行时通过动态布局组件的布局 - 通常使用JComponents的PreferredSize
;例如,FlowLayout
将为每个JComponent分配一个绝对位置,使其完全适合JComponent之前的权利,在需要时包装行。调整容器大小时,其中的所有组件都将重新计算其位置。有关详细信息,请参阅this tutorial。
关于BoxLayout
的问题,这是一个布局管理员; BoxLayout.X_AXIS
和BoxLayout.Y_AXIS
用于确定BoxLayout管理的JComponents在哪个方向排列;他们没有提到绝对定位。有关详细信息,请参阅here和the Javadocs on BoxLayout。
总而言之,您的任务是使用布局管理器;标准java库中提供的不同布局管理器在教程中有详细描述(请参阅链接,浏览站点)。玩得开心!