2012-11-06 28 views
1

我在JPanel上有一個網格佈局,並添加一個帶有圖標的JButton,並且它們在一起時按照正確的順序形成圖片。Java在GridLayout面板比較兩個陣列的圖像/按鈕

然後將圖像數組(其實是單個圖像使用java代碼裁剪並存儲在數組中)然後將每個JButton圖標設置爲新圖像。現在,這給了我們一個很好的「拼圖」類型的圖片,最終用戶可以交換圖塊來重新排列圖片。

我唯一的問題是,我不知道如何檢查他們是否有1)將圖像放在正確的位置(按鈕)和b)如果所有圖像都在正確的位置(按鈕),形成原始圖片。

我將按鈕存儲在一個數組中,並將每個圖像存儲在一個單獨的數組中。只有圖像被排序,並且當用戶交換兩個不同的圖塊時,只有圖像圖標被設置。

我的想法是,我需要比較按鈕[0] .image == image [0]等,但是,我不知道該怎麼做。

也許我的做法是錯誤的,還有其他屬性或地點去追求?

回答

0

如果我正在實現這一點,我會保持圖像的不混亂數組(或列表)以及索引數組(或列表)到該數組中。用index[i] = i初始化第二個數組/列表。然後洗牌索引的數組/列表。設置JButton圖標需要額外的間接級別:button[i].setIcon(image[index[i]])。但它使檢查圖像在正確的位置更容易:if (index[i] == i)

1

這是一個簡單的益智遊戲的例子,就像你正在開發的一樣。這裏我使用了數字,但是您使用的是圖像。

Java Swing Shuffle Game

您可以使用按鈕的名稱爲指標。

JButton btn[index] = new JButton(index,imageIcon) ; 

因此,對於每一步你需要檢查按鈕索引是否有序。如果訂購,您的洗牌安排。我希望你能繼續前進。玩的開心。

+0

我曾經想過,我在印象之下,該構造函數的第一個參數是將顯示給用戶的文本。此外,如果按鈕沒有移動,但imageIcons,林不知道這將仍然工作,因爲索引將與按鈕而不是圖像關聯? – Kairan

+0

@凱蘭它不應該顯示正確嗎?你可以找到一種方法來隱藏它。檢查button.setText。 – vels4j

+0

@凱蘭你在哪裏卡住了? – vels4j