【问题标题】:Using swing GUI in java在java中使用swing GUI
【发布时间】:2021-05-06 09:01:38
【问题描述】:

我有几个关于 Java swing GUI 的问题,仅供参考,这是我第一次使用 GUI,所以我真的不太了解这些东西

  1. 我的代码基本上是一个具有名称和数字属性的用户类,我计划将其用作登录页面。所以我所做的是为这个用户类创建一个新的 GUI 类,它与用户类完全分开(一个类用于函数,另一个用于 GUI)。这是错的吗?我应该将用户方法和 GUI 放在一个类中吗?

  2. 我有 2 个 GUI,一个欢迎 GUI 和一个登录 GUI。我如何确保一个导致下一个?我试图使欢迎框架不可见(登录框架在其自己的 GUI 中可见)但没有奏效。

登录界面与上面类似,有frame.setVisible(true);

【问题讨论】:

  • 通过在代码中的正确位置调用正确的方法。您不应该认为 GUI 代码与任何其他代码有任何不同
  • “几个问题”应该分成几个问题线程。
  • Oracle 有一个有用的教程,Creating a GUI With JFC/Swing。跳过 Netbeans 部分。

标签: java swing user-interface


【解决方案1】:

1- 我的代码基本上是一个带有名称和编号的用户类 我计划用作登录页面的属性,所以我所做的是 为这个用户类创建一个新的 GUI 类,完全独立于 用户类(一个类用于函数,另一个用于 GUI) ,这是错的吗?就像我应该放置用户方法和 一个类中的 GUI?

UI 开发中的一个常见概念是“模型-视图-控制器”(暂时不用担心控制器)。这意味着您的“数据”以某种方式建模(即User),您的“视图”(UI)采用该模型并决定如何将模型呈现给用户。它还有助于管理用户和模型之间的交互。

所以,是的,让“数据”独立于“用户界面”是正确的策略。永远记住,确定数据“如何”格式化是 UI 的责任,模型只是以某种有意义的方式管理数据的一种手段。

2- 我有 2 个 GUI,一个欢迎 GUI 和一个登录 GUI,我如何确保 一个导致下一个?我试图使欢迎框架不可见( 登录框架在其自己的 GUI 中可见)但这不起作用

这在概念上有点宽泛。通常,我们可能会建议使用CardLayout 在视图之间“翻转”,但这会假设您想在某个时候重新访问这些视图。

从更“抽象”的角度来看,您将使用某种“控制器”根据当前状态来决定应该发生什么。

这意味着,如果“欢迎”尚未呈现,您将呈现“欢迎”视图。当用户准备好超越它时,“欢迎”将通知“控制器”,然后控制器将决定下一步做什么。

即。您以前是否保存过凭据?如果是这样,您可以自动登录用户并继续前进,否则您需要显示“登录”视图以获取凭据并允许控制器对用户进行身份验证。

这会将您转移到“观察者模式”(也称为侦听器),当某个状态发生变化时,利益方会在其中注册感兴趣的通知。

在尝试设计此类系统时,请始终问自己一些基本问题

  • 我需要向程序的其他部分公开多少内容?即欢迎视图不需要了解登录视图,因为它可以对登录视图执行超出其职责范围的操作
  • 要更改其中的任何部分,我需要付出多大的努力或做多少工作?!所以你得到了欢迎屏幕来打开登录屏幕,但现在你想添加“自动登录”,你需要做多少工作才能做到这一点?如果欢迎视图和登录视图相互独立并通过其他机制进行控制,会不会更容易?

Java and GUI - Where do ActionListeners belong according to MVC pattern?的简单实现示例

【讨论】:

    猜你喜欢
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 2012-06-26
    • 2015-09-11
    • 2018-05-03
    • 1970-01-01
    相关资源
    最近更新 更多