我正在用java編寫一個簡單的2D遊戲。到目前爲止,我已經有了一個GGame類,它基本上描述了整個遊戲/它的狀態。與此GGame唯一相互作用是經由簡單的Java /遊戲的Swing GUI
GGame#render(width, height) : BufferedImage
和
GGame#addEvent(event) : void
當遊戲啓動一個JFrame被創建並且北京時間延伸的JPanel一個的GamePanel被添加到該幀。 GamePanel正在做所有事情,從發送事件到GGame並渲染/重新繪製自己。
現在我想在GGame的頂部添加一個GUI(庫存,其他一些信息......)。我的想法是簡單地讓GUI擴展JPanel並將其添加到像GamePanel這樣的框架,而GUI具有對GGame的參考來詢問庫存等。
要在這裏明確,我不想添加GUI在GGame旁邊,但在它之上。我的問題是,我總是需要傳遞給兩個面板的所有事件,而最上面的一個(GUI)是透明的。此外,我希望這兩個面板自動適應窗口大小(GamePanel通過每次渲染時獲取面板大小來實現)。
最好的方式來實現這樣的事情,爲什麼?
你是否簡單地問如何將一個JPanel放在另一個JPanel上,在任何給定的時間只顯示一個JPanel?如果是這樣,請考慮https://docs.oracle.com/javase/tutorial/uiswing/components/layeredpane.html – c0der
基本上是的,但我不想自動適應窗口大小,我需要傳遞給兩個面板的事件 –