Swing 事件架构

发布于 2024-11-27 15:26:37 字数 688 浏览 0 评论 0原文

我正在构建一个基于 Swing 的富客户端应用程序。我想知道事件处理的最佳架构是什么。

我的类是:

  • MyFrame
  • FirstPanel,带有 jbutton
  • SecondPanel 和 jLabel

我使用 MyFrame 中的 FirstPanel 启动应用程序。

然后,我向 FirstPanel 中的按钮添加一个操作侦听器,我希望此操作 (1) 关闭 FirstPane,然后 (2) 在正在运行的 MyFrame 中打开一个新的 SecondPanel

如何操作?

编辑 - 示例

我想在启动时显示存储在文件中的用户列表,然后用户单击他的名字或单击“新用户”。当他单击“新用户”时,会出现第二个面板,其中包含一个用于创建新用户并将其存储在文件中的表单。

在此示例中,MyFrame 是主框架,由 main() 方法创建。

然后出现 ListUsersPanel。

然后,如果我单击“新用户”,就会出现 NewUserPanel。

我的问题是:如何设计我的类/侦听器来管理这一切?

** 编辑 - 示例 2 ** 如果我有一个包含 2 个 JPanel 的 JFrame,并且我想要在 Panel1 中使用一个按钮来更改 Panel2 中的标签,该怎么办?

I'm building a rich client application based on Swing. And I'm wondering what is the best architecture for event's handling.

My classes are :

  • MyFrame
  • FirstPanel, with a jbutton
  • SecondPanel with a jLabel

I start the application with a FirstPanel within a MyFrame.

Then, I add an action listener to the button in the FirstPanel, and I whant this action to (1) close the FirstPane then (2) open a new SecondPanel in the running MyFrame

How to do it ?

Edit - Example

I want to show at startup a list of users, stored in a file, then the user click on his name or click on "new user". When he clicks on "new user", a second panel appears, with a form to create a new user and store it in the file.

In this example, MyFrame is the main frame, created by the main() method.

Then the ListUsersPanel appears.

Then, the NewUserPanel appears if I click on "new user".

My question is : how do I design my classes/listeners to manage all this ?

** Edit - example 2 **
What if I have a JFrame that contains 2 JPanels, and I want a button in Panel1 that change a label in Panel2 ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

望喜 2024-12-04 15:26:37

在这种情况下,通常您只需使用模式 JDialog 来显示新的用户表单。新表单完成并关闭对话框后,可能需要刷新您的用户列表。

In this situation normally you just use a modal JDialog to display the new user form. Might need to refresh your list of users once the new form has been completed and the dialog is closed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文