我有一个 JPanel
,它有一个 JLayeredPane
。 JLayeredPane
有一个 JPanel
,它有一个 BoxLayout
并保存一个 JFreeChart
。 JLayeredPane
还有一个 JComboBox
;见下图。
Graph
对象在运行时添加到 chartHolder
中。
当我运行应用程序时,comboBox
显示正确。将graph
对象添加到chartHolder
后,combobox
停止渲染。仅显示图表。
如果我单击组合框所在的区域,下拉列表和组合框将变得可见。如果我单击图表
以关闭下拉列表,组合框将再次消失。
chartHolder
--> DEFAULT_LAYER
comboBox
--> jLayeredPane 中的Pallette_Layer
。
根据我提供给 JLayeredPane
的顺序,组合框应始终呈现在图表上方。
问题是什么?
最佳答案
How to Use Layered Panes: Laying Out Components in a Layered Pane提到“默认情况下,分层 Pane 没有布局管理器。”您必须验证是否设置了每个组件的位置和大小,如图 here 所示。使用setBounds()。 ChartPanel
从父类 JPanel
继承 FlowLayout
, 默认情况下;带有 BoxLayout
的周围 chartHolder
可能是多余的。
关于java - 当 JComboBox 位于 JLayeredPane 中的 JFreeChart 上方时消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31036805/