我有jFrame = frame
它有jcombobox = combo
然后我有jpanel = panel
我在这个小组中有很多组件
我尝试将此面板添加到组合框popupmenu
中所以如果点击了组合框,
具有许多组件的面板将显示
可以将面板添加到组合框弹出菜单中吗?!?!
怎么办?
我已经阅读了
http://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html
和
但仍然没有任何线索
怎么做?
非常感谢任何帮助...
答案 0 :(得分:0)
因此,根据您的说明,您有一个不可见的面板,如果单击组合框,您希望显示该面板?那么组合框中的任何选项都会出现吗?
这应该很简单。让我们从Java教程中修改this ComboBoxDemo中的JLabel
。由于它们都继承自JComponent
,因此我们可以以相同的方式显示JLabel
和JPanel
。
首先,确保您了解演示正在做什么。 Combobox选项正在更改JLabel中日期文本的格式。我们想要编辑演示,直到我们在JComboBox中选择任何选项之后才能看到这个JLabel。
首先,我们希望包含一个布尔值作为类变量,以便我们可以在任何方法中访问它。
boolean visibleComp;
接下来,在构造函数中,您将希望将JLabel“result”更改为默认情况下不可见。我们可以使用JComponent的setVisible method来完成此任务。
result.setVisible(false);
现在我们需要控制结果何时以及如何变得可见 - 当我们继续执行代码时,我们看到actionPerformed
方法处理我们的事件,并将格式详细信息传递给另一个名为{{1的方法}}
由于在我们的构造函数中也调用了重新格式化,我们需要在actionPerformed方法中设置我们的布尔值。
reformat.
然后我们想要在重新格式化中向try块添加一个条件语句 - 这将检查我们的布尔值是否为真,这只有在用户执行了一个动作时才会发生。我们可以使用它来设置组件的可见性。
visibleComp = true;
您可以轻松地将JPanel与此示例互换。希望有所帮助。