0

我有 jFrame = 框架

它有 jcombobox = 组合

然后我有 jpanel = 面板

我在这个面板中有很多组件

我尝试将此面板添加到组合框弹出菜单中

因此,如果单击组合框,

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

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

怎么做???

我已经读过了

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

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

但仍然没有任何线索

怎么做?

非常感谢您的帮助...

4

1 回答 1

0

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

那应该很简单。让我们从 Java 教程JLabel中修改这个 ComboBoxDemo中的。由于它们都继承自JComponent,我们将能够以相同的方式使JLabelJPanel可见。

首先,确保您了解演示在做什么。组合框选项正在更改 JLabel 中日期文本的格式。我们希望以这样一种方式编辑演示,使这个 JLabel 在我们选择 JComboBox 中的任何选项之前不可见。

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

boolean visibleComp;

接下来,在构造函数中,您需要将 JLabel“结果”更改为默认不可见。我们可以通过使用JComponent的setVisible 方法来做到这一点。

result.setVisible(false);

现在我们需要控制结果何时以及如何变得可见——当我们继续执行代码时,我们看到该actionPerformed方法处理我们的事件,并将格式化细节传递给另一个名为reformat.

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

visibleComp = true;

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

if(visibleComp){
     result.setVisible(true);
}

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

于 2012-10-10T05:18:04.257 回答