簡體   English   中英

在我的java applet程序中添加另一個類

[英]adding another class to my java applet program

我正在java中制作一個騎士游覽實現,目前我把所有內容混雜在一堆巨大的代碼中。

我有一個名為MainFrame的類,其中包括解決騎士之旅的代碼以及菜單的方法等。

我想創建一個名為KT的新類(用於騎士之旅),它將包含算法的代碼,但是我有很多問題要做。

我不想在這里發布代碼因為我不希望我的班級中有人復制或者其他什么,所以我只是簡單地解釋一下。

在類KT中,我已經聲明了變量,數組等。我有printSolution,move,redo(回溯)等方法。

但是我不確定如何綁定按鈕的代碼(在MainFrame中聲明)。 例如,我在print方法中有一個循環,它在8x8板上打印正確的解決方案。 現在我被要求為按鈕創建一個新方法,即使我在MainFrame類中有按鈕。

我有一個KT k = new KT(); 然后我啟動MainFrame。 這是我在做錯的地方,還是一些非常簡單的東西,我太愚蠢了?

tl; dr程序在我在一個班級中擁有所有內容時效果很好,但是我想制作兩個班級並使一切“看起來”不錯

MainFrame類的actionPerformed方法中,只需調用適當的方法從KT獲取解決方案(順便說一下,我將重命名為KnightsTour ...可讀性計數)。

理想情況下,你希望所有的邏輯(模型)分解成合理的方法KnightsTour ,和所有的顯示和按鍵處理代碼中(視圖和控制器) MainFrame 如果這很困難,那么你需要重新思考如何將事物划分為方法(以及你對全球國家所做的事情......這是不贊成的),這是一個好兆頭。

對不起,我不能說得更具體 - 因為你沒有發布代碼,所以我有點緊張。

首先,給你的KnightTour類一個實際的名字。 就像你知道的,KnightTour。 如果你用現金來編寫這個,那么下一個必須閱讀你的代碼的人就會想要打電話給那個叫KT類的人。

考慮創建這個類,以便您可以從GUI控制器(如按鈕和菜單載荷小程序)中使用它。 但是,它也可以用於,例如,基於字符的應用程序,您可以在提示符下鍵入命令並讓新類評估這些命令。

我建議這樣做的原因是因為它會迫使你創建你的KnightTour類,以便它是你應用程序的“業務邏輯”。 我的意思是你的KnightTour類不應該知道關於按鈕,菜單,GUI,文本界面或類似的東西。 你需要根據它必須完成的事情來考慮你的KnightTour課程。

我真的不知道KnightTour的作用。 因此,我只想提出一些可能需要支持的功能的想法。 我假設一切都發生在國際象棋棋盤上?

  1. 獲取給定電路板位置(x,y)的狀態(占用,未占用)
  2. 將棋子(片段枚舉器)放在給定位置(x,y)
  3. 驗證一塊(片段枚舉器,位置x,y)的位置
  4. 建議移動,返回帶有片段枚舉器和位置的Suggestion對象
  5. 重置電路板以重新開始。

現在,當你按下一個“放置5,5”的按鈕時,你將在GUI控制器中處理該事件,然后調用“set piece”方法(上面的#2)來完成這項工作。 如果你有一個基於角色的應用程序,當你輸入“把騎士放在5,5”時,你將解析該文本,然后調用上面的#2。 關鍵是這兩個用戶界面都使用相同的KnightTour方法來完成相同的工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM