在我的java applet程序中添加另一个类

时间:2012-07-05 02:03:23

标签: java applet

我正在java中制作一个骑士之旅,目前我把所有内容都混杂在一堆巨大的代码中。

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

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

我不想在这里发布代码,因为我不希望我班级的某人复制或其他什么,所以我只是简单解释一下。

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

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

我有一个KT k = new KT();然后我启动MainFrame。这是我在做错的地方,还是一些非常简单的事情,我太愚蠢了?

tl; dr程序运行良好,当我在一个班级中拥有所有东西,但我想制作两个班级并使一切“看起来”不错

2 个答案:

答案 0 :(得分:2)

actionPerformed课程的MainFrame方法中,只需调用相应的方法即可从KT获取解决方案(顺便提一下,我会重命名为KnightsTour ......可读性很重要。)

理想情况下,您希望所有逻辑(模型)分解为KnightsTour中的合理方法,以及MainFrame中所有的显示和按钮处理代码(视图和控制器)。如果这很困难,那么你需要重新思考如何将事物划分为方法(以及你对全球国家所做的事情......这是不赞成的),这是一个好兆头。

我很抱歉,我不能更具体 - 因为你没有发布代码,所以我有点紧张。

答案 1 :(得分:2)

首先,给你的KnightTour类一个实际的名字。就像你知道的,KnightTour。如果你用现金来编写这个,那么下一个必须阅读你的代码的人就会想要打电话给像KT这样的课程的人。

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

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

我真的不知道KnightTour的作用。因此,我只想提出一些可能需要支持的功能的想法。我假设一切都发生在国际象棋棋盘上?

  1. 获取给定电路板位置(x,y)的状态(占用,未占用)
  2. 在给定位置(x,y)上放置一个棋子(片段枚举器)
  3. 验证作品的位置(片段枚举,位置x,y)
  4. 建议移动,返回带有片段枚举器和位置的Suggestion对象
  5. 重置电路板以重新开始。
  6. 现在,当你按下一个“放置5,5”的按钮时,你将在GUI控制器中处理该事件,然后调用“set piece”方法(上面的#2)来做工作。如果你有一个基于角色的应用程序,当你输入“把骑士放在5,5”时,你将解析该文本,然后调用上面的#2。关键是这两个用户界面都使用相同的KnightTour方法来完成相同的工作。

相关问题