【发布时间】:2019-06-21 07:24:23
【问题描述】:
我正在使用 Swing 组件用 Java 编写一个小型 GUI。我的程序使用了几个重叠的面板,它们的大小在调用 'pack()' 时决定。
我的问题是这个。我需要在pack() 之前知道特定JPanel 的尺寸,因为我需要在它垂直下方画一条线。但是,在调用 pack 之前,我无法获得这个高度尺寸。
我在打包命令之前调用了System.out.println(myPanel.getSize()),它返回(0, 0)。当放入之后,它会返回面板的实际尺寸......正如您所期望的那样。
那么,如何在面板的整个长度上画一条线,或者在开始时不知道它的长度,或者在调用 pack 之后以某种方式这样做?
【问题讨论】:
-
“在面板的整个长度上画一条线” DYM 位于面板的左侧或右侧,还是介于两者之间?这条线的目的是什么?它为最终用户提供了什么?
-
这条线可以充当“括号”,否则最终会。我想在矩形 JPanel 的任一侧创建“方括号”。所以,我想,要么把实际的图像放在那里,要么把它们画进去。我决定试着画它们。
-
“所以,我想,要么把实际的图像放在那里,要么把它们画进去。我决定试着画它们。”我会选择选项'C' .一个自定义的
JComponent(BracketComponent),它接受构造函数中的常量(Bracket.LEFT或Bracket.RIGHT)来决定渲染的方式。自定义组件将返回一个首选大小,以向布局提示渲染它的大小,但在调用渲染时,它将使用已分配给它的空间。
标签: java swing user-interface awt