java - 将另一个类添加到我的 java applet 程序中

标签 java applet

我正在用 Java 实现骑士之旅,目前我将所有内容都混入了一大堆代码中。

我有一个名为 MainFrame 的类,其中包含解决骑士之旅的代码以及菜单的方法等。

我想创建一个名为 KT(用于骑士之旅)的新类,它将包含算法的代码,但我在这样做时遇到了很多问题。

我不想在这里发布代码,因为我不想让我类的人抄袭什么的,所以我只是简单地解释一下。

在 KT 类中,我声明了变量、数组等。我有 printSolution、move、redo(回溯)等方法。

但是我不确定如何绑定(bind)按钮的代码(在 MainFrame 中声明)。例如,我在 print 方法中有一个循环,可以在 8x8 板上打印正确的解决方案。现在我被要求为按钮创建一个新方法,即使我在类 MainFrame 中有按钮。

我有一个 KT k = new KT();然后我启动 MainFrame。那是我做错的地方还是我太笨而无法弄清楚的事情真的很简单?

tl;dr 程序在我将所有内容都放在一个类中时运行良好,但我想制作两个类并使所有内容“看起来”都不错

最佳答案

首先,给您的 KnightTour 类一个真实的名称。就像,你知道的,KnightTour。如果您编写此代码是为了现金,那么下一个必须阅读您的代码的人会想揍那个把类称为 KT 之类的人。

考虑创建此类,以便您可以从 GUI Controller (如按钮和载有菜单的小程序)中使用它。但是,它也可以用于例如基于字符的应用程序,在该应用程序中,您可以在提示符下键入命令并让您的新类评估这些命令。

我建议这样做的原因是因为它会强制您创建您的 KnightTour 类,以便它纯粹是您应用程序的“业务逻辑”。我的意思是你的 KnightTour 类不应该知道任何关于按钮、菜单、GUI、文本界面或类似的东西。您需要根据必须完成的任务来考虑您的 KnightTour 类。

我真的不知道 KnightTour 是做什么的。所以我将抛出一些关于它可能需要支持什么样的功能的想法。我假设一切都发生在棋盘上?

  1. 获取给定棋盘位置 (x,y) 的状态(已占用、未占用)
  2. 在给定位置 (x,y) 上放置一个棋子(棋子枚举器)
  3. 验证棋子的放置(棋子枚举器,位置 x,y)
  4. 建议移动,返回一个带有棋子枚举器和位置的建议对象
  5. 重置看板以重新开始。

现在,当您按下一个显示“在 5,5 上放置一个棋子”的按钮时,您将在 GUI Controller 中处理该事件,然后调用“设置棋子”方法(上面的#2)来执行此操作工作。如果您有一个基于角色的应用程序,当您键入“将骑士放在 5,5”时,您将解析该文本,然后调用上面的 #2。关键是这两个用户界面都访问相同的 KnightTour 方法来完成相同的工作。

关于java - 将另一个类添加到我的 java applet 程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11337073/

相关文章:

java - 为什么 Java 小程序可以在 Windows 上运行,但不能在 Mac 10.6.8 上运行?

Java 似乎无法找到我的 native 库

java - 只接受部分类的通用方法

java - Spring Bean配置文件无法从Gradle中声明的依赖项中找到类

java - 当我尝试在 jsp 上运行小程序时出现 AccessControlException

java - Eclipse ADT 小程序黑屏

java - 使用小程序上传大于 32KB 的文件时出现异常

java - 将注册表单添加到 JAAS 保护的 servlet

java - 带有 maven 和 tomcat 的 AXIS2 web 服务,部署为 aar

java - 读取保存文件时如何管理文本格式?