簡體   English   中英

GUI無法正確更新

[英]GUI not updating properly

我剛剛完成了一個項目,其中涉及創建一個迷宮並對三個“機器人”進行編程,以使用不同的策略在其中進行移動。 實現中涉及的類是:

  • 具有三個子類的抽象類機器人
  • 處理迷宮邏輯操作的迷宮類
  • 一個JFrame類,以圖形方式顯示迷宮並顯示機器人在迷宮中移動

最后,我有一個帶有main方法的入口點,其中僅包含以下內容:

    Maze m = new Maze();
    MazeFrame mf = new MazeFrame(m);
    RightHandRobot mr = new RightHandRobot(m, mf);
    mr.go(m);

這非常完美-迷宮顯示在GUI上,我可以看到機器人穿過迷宮直至到達終點-達到了預期的效果。

我的問題是:在JFrame的頂部是三個按鈕,每個按鈕都有一個ActionListener,它創建一種機械手類型的實例並調用其go方法,這使其移動直到到達“完成單元”。 當我單擊這些按鈕之一時,便創建了機械手並開始移動(可以通過每次移動執行的println語句進行驗證),但是我無法在GUI上看到機械手在移動。 僅在機器人到達終點(即go()方法完成)時才更新GUI,此時將顯示機器人所走的整個路徑。

為什么在通過main方法創建機械手而不是通過JFrame類創建機械手時,GUI可以正確更新?

我不確定您需要看什么代碼來幫助我解決這個問題,所以讓我知道您需要看什么。

使用javax.swing.Timer來對動畫進行節奏調整,如本FleetPanel所示。 在每個滴答聲中,計時器的偵聽器應僅渲染正在運行的機器人。

圖片

暫無
暫無

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

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