0
我創建了10乘10的Jpanels陣列,我必須從它們中移除一個正方形。被點擊的方塊必須被移除,所以它下面的所有正方形和右邊的方塊都必須移除。 目前,當我點擊一個正方形時,它只會刪除一個正方形。 http://imgur.com/a/6wZYA - 這是網格的樣子,然後是期望的結果。 下面附上的是我目前使用的代碼。任何幫助是受歡迎的。請讓我知道如果我需要附加任何更多的代碼,謝謝。從陣列中移除面板
for (int x = 0; x < 10; x++) {
playingGrid[x] = new JPanel[10];
for (int y = 0; y < 10; y++) {
playingGrid[x][y] = new JPanel();
playingGrid[x][y]= new ImagePanel(Toolkit.getDefaultToolkit()
.getImage("rock.jpg"));
pcenter.add(playingGrid[x][y]);
playingGrid[x][y].addMouseListener(new Rockbreaker());
}
}
f.getContentPane().add(pcenter, BorderLayout.CENTER);
}
public class Rockbreaker implements MouseListener{
public void mouseClicked(MouseEvent e) {
//sets all columns greater than one clicked to invisible
for (int x = 0; x < 10; x++) {
for (int y = 0; y < 10; y++) {
if(playingGrid[x][y]== e.getSource()){
for (int c=0;c<100;c++){
if(c>x){
playingGrid[x][y].setVisible(false);
}
}
我已經刪除了你的JavaScript標記,因爲你的問題與此無關語言並添加了Swing標籤,因爲您的問題與此庫有關。但是至於你的實際問題,也許是我的問題,但我不知道你想要做什麼或者你在嘗試什麼問題。如果您很快就沒有得到正確的答案,請認真考慮改進這個問題,包括髮布更多相關和更好解釋的細節以及符合[mcve]的代碼發佈。 –
另外,爲什麼給你的網格指定一個新的JPanel,'playingGrid [x] [y]',然後立即放棄這個JPanel對象,並將一個完全不同的對象,一個ImagePanel分配給同一個網格位置?這個不成立。 –
此外,如果這是我的項目,我可能不會更改我的網格中的JPanel的可見性,因爲這可能會擾亂網格中所有可見組件的佈局,而是可能會使用JLabel的網格,並且只需交換顯示標籤的圖標即可。 –