为什么说面板和boxlayout两次?

时间:2009-07-27 04:27:11

标签: java swing layout

panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

3 个答案:

答案 0 :(得分:1)

panel的{​​{1}}争论有些令人困惑。您需要指定BoxLayout实例所附加的目标。此外,在基于BoxLayout接口的许多方法中,LayoutManager2要求传递BoxLayout,并执行您在右侧传递的检查。

Y_AXIS是一个类变量,它是panel方向的两个合法int值之一。你可以传递值0,但使用常量要好得多。

答案 1 :(得分:1)

好吧,主要是因为BoxLayout是一个旧的API,然后他们才知道更好。

如果您对灵活的现代布局管理器感兴趣,请使用MigLayout

答案 2 :(得分:0)

BoxLayout很简单 - Y_AXIS构造函数的参数(BoxLayout)属于BoxLayout类,因此您需要指定它。可能还有另一个Y_AXIS值,这是一个错误的值。

这是封装的基础。

关于panel双重提及,我无法确定。但似乎有必要告诉面板需要告诉它的布局管理器布局管理器需要知道它应用于哪个面板(因为它需要知道面板的内容才能铺设他们聪明地出去了。)