如何从JPanel类访问JFrame组件?

时间:2015-01-21 17:09:59

标签: java swing jframe jpanel cardlayout

我正在进行GUI分配,我遇到了一个我无法弄清楚的问题。我有一个带有多个JPanel的JFrame,其中一个JPanel包含一个带有多个JPanel的CardLayout。由于我们是更多的人参与该项目,我们决定为每个面板创建一个单独的类(扩展JPanel),它将在CardLayout中。

问题是从JPanel类访问JFrame的组件。

举个例子,我在JFrame中的某处有一个JLabel作为状态栏,我想在SaleMain面板上按下按钮时更改状态栏的文本(一个扩展JPanel的类SaleMain) ,包含在CardLayout中)。

另一个例子,在另一个面板EditCustomer(也是一个JPanel类,包含在CardLayout中)中,我想要一个带有动作监听器的按钮,它将当前面板(包含按钮的面板)更改为与CardLayout不同的面板。

希望我尽可能清楚地表达,谢谢你们提前帮助我:)。

1 个答案:

答案 0 :(得分:3)

model / view / controller pattern(MVC)对于创建GUI非常有用。通过将模型与视图分离,您可以一次专注于GUI的一部分。

您为GUI创建一个模型,其中包含您要在GUI上显示的信息。

  

我在JFrame中的某处有一个JLabel作为状态栏,我想在SaleMain面板上按下按钮时更改状态栏的文本

将文本放入模型中,并在按钮的动作侦听器中,将文本放在状态栏中。

  

我想要一个带动作监听器的按钮,它将当前面板(包含按钮的面板)更改为与CardLayout不同的面板。

然后这样做。动作侦听器是一个可以更改视图的控制器。

查看我的文章Dice Game,了解Java Swing应用程序如何实现MVC模式和JPanel切换。

相关问题