我正在进行GUI分配,我遇到了一个我无法弄清楚的问题。我有一个带有多个JPanel的JFrame,其中一个JPanel包含一个带有多个JPanel的CardLayout。由于我们是更多的人参与该项目,我们决定为每个面板创建一个单独的类(扩展JPanel),它将在CardLayout中。
问题是从JPanel类访问JFrame的组件。
举个例子,我在JFrame中的某处有一个JLabel作为状态栏,我想在SaleMain面板上按下按钮时更改状态栏的文本(一个扩展JPanel的类SaleMain) ,包含在CardLayout中)。
另一个例子,在另一个面板EditCustomer(也是一个JPanel类,包含在CardLayout中)中,我想要一个带有动作监听器的按钮,它将当前面板(包含按钮的面板)更改为与CardLayout不同的面板。
希望我尽可能清楚地表达,谢谢你们提前帮助我:)。
答案 0 :(得分:3)
model / view / controller pattern(MVC)对于创建GUI非常有用。通过将模型与视图分离,您可以一次专注于GUI的一部分。
您为GUI创建一个模型,其中包含您要在GUI上显示的信息。
我在JFrame中的某处有一个JLabel作为状态栏,我想在SaleMain面板上按下按钮时更改状态栏的文本
将文本放入模型中,并在按钮的动作侦听器中,将文本放在状态栏中。
我想要一个带动作监听器的按钮,它将当前面板(包含按钮的面板)更改为与CardLayout不同的面板。
然后这样做。动作侦听器是一个可以更改视图的控制器。
查看我的文章Dice Game,了解Java Swing应用程序如何实现MVC模式和JPanel切换。