将面板添加到组合框弹出菜单中

时间:2012-10-10 04:45:27

标签: java swing jpanel jcombobox jpopupmenu

我有jFrame = frame

它有jcombobox = combo

然后我有jpanel = panel

我在这个小组中有很多组件

我尝试将此面板添加到组合框popupmenu

所以如果点击了组合框,

具有许多组件的面板将显示

可以将面板添加到组合框弹出菜单中吗?!?!

怎么办?

我已经阅读了

http://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html

http://docs.oracle.com/javase/tutorial/uiswing/examples/components/ComboBoxDemoProject/src/components/ComboBoxDemo.java

但仍然没有任何线索

怎么做?

非常感谢任何帮助...

1 个答案:

答案 0 :(得分:0)

因此,根据您的说明,您有一个不可见的面板,如果单击组合框,您希望显示该面板?那么组合框中的任何选项都会出现吗?

这应该很简单。让我们从Java教程中修改this ComboBoxDemo中的JLabel。由于它们都继承自JComponent,因此我们可以以相同的方式显示JLabelJPanel

首先,确保您了解演示正在做什么。 Combobox选项正在更改JLabel中日期文本的格式。我们想要编辑演示,直到我们在JComboBox中选择任何选项之后才能看到这个JLabel。

首先,我们希望包含一个布尔值作为类变量,以便我们可以在任何方法中访问它。

boolean visibleComp;

接下来,在构造函数中,您将希望将JLabel“result”更改为默认情况下不可见。我们可以使用JComponent的setVisible method来完成此任务。

result.setVisible(false);

现在我们需要控制结果何时以及如何变得可见 - 当我们继续执行代码时,我们看到actionPerformed方法处理我们的事件,并将格式详细信息传递给另一个名为{{1的方法}}

由于在我们的构造函数中也调用了重新格式化,我们需要在actionPerformed方法中设置我们的布尔值。

reformat.

然后我们想要在重新格式化中向try块添加一个条件语句 - 这将检查我们的布尔值是否为真,这只有在用户执行了一个动作时才会发生。我们可以使用它来设置组件的可见性。

visibleComp = true;

您可以轻松地将JPanel与此示例互换。希望有所帮助。