我有一個關于我正在處理的 Uni-project 的問題。我們必須創建一個游戲,其中我們有一個由瓷磚組成的板,您應該能夠通過點擊來旋轉這些瓷磚。瓷磚應始終適合網格,并且網格應隨窗口調整大小。現在我創建了一個“TileView”類,它擴展了 ImageView 以獲得與瓷磚圖案匹配的圖片。然后我有 TileGrid,它擴展了 GridPane,它應該由寬度*高度的 tileviews 組成。這個 GridPane 在一個 BorderPane 中,這就構成了場景。不幸的是,我不能真正把代碼放在這里,因為我們有嚴格的抄襲規則(如果有人看到我的代碼并復制它,我也會下臺)。因此,我為寬度和高度創建了 2 個 for 循環并創建了一個新的 TileView 并將 PreserveRatio 設置為 true,然后執行以下操作:setRowIndex(temp, i);setColumnIndex(temp, j);super.getChildren().add(temp);這是在類 TileGrid 中。然后我將它添加到邊距插入 100 的 BorderPane 中,這就是發生的情況:但是現在我遇到了將 TileViews 擬合到網格大小并使它們隨窗口調整大小的問題。我試過(“temp”是剛剛創建的 ImageView,因為我把它們放在 TileGrid 中):temp.fitWidthProperty().bind(prefWidthProperty());temp.fitHeightProperty().bind(prefHeightProperty());但是我的單個 ImageViews 是巨大的。這占滿了我的整個屏幕。我嘗試了很多東西,搜索了幾個小時,但從未達到我想要的效果,所以我真的希望有人可以幫助我或即使沒有我的代碼也能給我提示。
2 回答

胡說叔叔
TA貢獻1804條經驗 獲得超8個贊
由于您無法提供任何代碼,我將嘗試為您提供使用步驟,我希望它可能會有所幫助
首先BorderPane
,GridPane
將它們的大小調整到窗口,您遇到了一個問題,即調整ImageView
s的大小以使其成為可能可調整大小,您必須將bind
它們的大小調整為場景的大小,并考慮您想要的網格的行數和列數,
假設您有 2 列,因此圖像是場景的 50%
imageView.fitWidthProperty().bind(scene.getWidthProperty().divide(2));
注意:我不確定這一行的語法我有點忙抱歉
添加回答
舉報
0/150
提交
取消