为什么JMenuBar不在JFrame内容窗格中,而是在内容窗格中放置JToolbar

时间:2014-02-09 15:05:01

标签: java swing jframe jmenubar jtoolbar

为什么JMenuBar不在内容窗格中?在制作java gui程序时是否有任何原因或影响,特别是在使用jframe时? 感谢

1 个答案:

答案 0 :(得分:3)

Using Top-Level Containers文章所述,制作栏由根窗格管理:

  

每个顶级容器都依赖于一个隐藏的中间容器   称为根窗格。根窗格管理内容窗格和   菜单栏,以及其他几个容器。你通常不会   需要了解根窗格才能使用Swing组件。但是,如果你   需要拦截鼠标点击或绘制多个组件,   你应该熟悉根窗格。

enter image description here

菜单栏位于窗口顶部,因此如果将其放置在内容窗格中,则Layout managers必须处理此特定组件。通过将菜单栏与内容窗格分开,则布局菜单栏和其余组件的责任分工均匀。此外,菜单栏位置是固定的,此组件不可拖动,因此可以采用与其他组件不同的方式进行布局。

关于JToolBar此组件是可拖动的,您可能有几个组件,将一个放在另一个组件上,然后根据需要重新排列顺序。所以这个组件与菜单栏完全不同,因此它可以像文本字段或其他常规组件一样放在内容窗格中。

建议读物: