我正在做一個簡單的clojure掃雷遊戲,主要是練習一下這個語言。 「核心遊戲引擎」已經準備就緒,現在我想添加一個簡單的用戶界面。我看了一下seesaw,到目前爲止它的工作很好。如何爲簡單的掃雷遊戲創建MigLayout?
我唯一要努力的就是我想要使用的mig layout。我的想法是有那種以下佈局:
_______________________
[_________NORTH_________]
[ ][ ][ ]
[ W ][ FIXED ][ E ]
[ E ][ SIZE ][ A ]
[ S ][ BOARD ][ S ]
[ T ][ ][ T ]
[___][_____________][___]
[_________SOUTH_________]
北部,西部,東部和南部將增長的情況下,調整窗口大小。主面板應該有一個固定大小的代表遊戲板的所有按鈕。
之前,我讀到MIG佈局我使用含網格面板邊框面板考慮,但作爲蹺蹺板github上頁提到:
蹺蹺板已在seesaw.core /形式GridBagLayout的基本支持面板功能。我不建議使用它,因爲它是一半的,並不像使用MigLayout(seesaw.mig)或JGoodies(seesaw.forms)那樣強大。
我想給MigLayout一個嘗試。我第一次嘗試:
(defn make-border-panel
[]
(mig-panel
:constraints ["fill" "[grow][][grow]" "[grow][][grow]"]
:items [
["X" "shrink 0" ]
["X" "shrink 0" ]
["X" "shrink 0" ]
["X" "shrink 0" ]
["X" "shrink 0" ]
["X" "shrink 0" ]
["X" "shrink 0" ]
["X" "shrink 0" ]
["X" "shrink 0" ]
["Minesweeper North" "dock north"]
["W" "dock west" ]
["E" "dock east" ]
["Minesweeper South" "dock south"]
]))
更新1
我會忽略北,南,西,東的那一刻,也以下至少拿到中心板:
(defn make-button [x y]
(button :id (format "cell_%d_%d" x y)
:icon (clojure.java.io/resource "minesweeper/icons/button.png")))
(defn make-board
[w h]
(mig-panel
:constraints [(str "wrap" w) "[]" "[]" ]
:items (for [x (range w) y (range h)]
(vector (make-button x y) "w 24px!, h 24px!"))))
好的。你有問題嗎? –
其實,我如何才能實現固定大小的中心提到的邊界佈局。 「更新1」應該只是一箇中間解決方案,而我想出如何做到這一點。 – u6f6o