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