0
我的問題是我將如何在buttonHandler()中使用循環來確定按下的按鈕的值是否大於前一個值。所以我在尋找的是一種方法,以確保誰點擊按鈕點擊他們按照他們看到的數量升序。這是一個基於點擊按鈕的GUI遊戲,以評估靈活性。如何確保JButtons按照他們的文字按升序排列
這裏是按鈕數組填充1-12的數字的方法,這也確保沒有重複的數字,因此它將具有從1-12的所有數字,無論如何。
public static JButton[] randNum()
{
arrayImage [0] = (int) (Math.random() * 12) + 1;
arrayImage [1] = (int) (Math.random() * 12) + 1;
while (arrayImage [1] == arrayImage [0])
{
arrayImage [1] = (int) (Math.random() * 12) + 1;
}
arrayImage [2] = (int) (Math.random() * 12) + 1;
while (arrayImage [2] == arrayImage [1] || arrayImage [2] == arrayImage [0])
{
arrayImage [2] = (int) (Math.random() * 12) + 1;
}
arrayImage [3] = (int) (Math.random() * 12) + 1;
while (arrayImage [3] == arrayImage [2] || arrayImage [3] == arrayImage [1] || arrayImage [3] == arrayImage [0])
{
arrayImage [3] = (int) (Math.random() * 12) + 1;
}
arrayImage [4] = (int) (Math.random() * 12) + 1;
while (arrayImage [4] == arrayImage [3] || arrayImage [4] == arrayImage [2] || arrayImage [4] == arrayImage [1] || arrayImage [4] == arrayImage [0])
{
arrayImage [4] = (int) (Math.random() * 12) + 1;
}
arrayImage [5] = (int) (Math.random() * 12) + 1;
while (arrayImage [5] == arrayImage [4] || arrayImage [5] == arrayImage [3] || arrayImage [5] == arrayImage [2] || arrayImage [5] == arrayImage [1] || arrayImage [5] == arrayImage [0])
{
arrayImage [5] = (int) (Math.random() * 12) + 1;
}
arrayImage [6] = (int) (Math.random() * 12) + 1;
while (arrayImage [6] == arrayImage [5] || arrayImage [6] == arrayImage [4] || arrayImage [6] == arrayImage [3] || arrayImage [6] == arrayImage [2] || arrayImage [6] == arrayImage [1] || arrayImage [6] == arrayImage [0])
{
arrayImage [6] = (int) (Math.random() * 12) + 1;
}
arrayImage [7] = (int) (Math.random() * 12) + 1;
while (arrayImage [7] == arrayImage [6] || arrayImage [7] == arrayImage [5] || arrayImage [7] == arrayImage [4] || arrayImage [7] == arrayImage [3] || arrayImage [7] == arrayImage [2] || arrayImage [7] == arrayImage [1] || arrayImage [7] == arrayImage [0])
{
arrayImage [7] = (int) (Math.random() * 12) + 1;
}
arrayImage [8] = (int) (Math.random() * 12) + 1;
while (arrayImage [8] == arrayImage [7] || arrayImage [8] == arrayImage [6] || arrayImage [8] == arrayImage [5] || arrayImage [8] == arrayImage [4] || arrayImage [8] == arrayImage [3] || arrayImage [8] == arrayImage [2] || arrayImage [8] == arrayImage [1] || arrayImage [8] == arrayImage [0])
{
arrayImage [8] = (int) (Math.random() * 12) + 1;
}
arrayImage [9] = (int) (Math.random() * 12) + 1;
while (arrayImage [9] == arrayImage [8] || arrayImage [9] == arrayImage [7] || arrayImage [9] == arrayImage [6] || arrayImage [9] == arrayImage [5] || arrayImage [9] == arrayImage [4] || arrayImage [9] == arrayImage [3] || arrayImage [9] == arrayImage [2] || arrayImage [9] == arrayImage [1] || arrayImage [9] == arrayImage [0])
{
arrayImage [9] = (int) (Math.random() * 12) + 1;
}
arrayImage [10] = (int) (Math.random() * 12) + 1;
while (arrayImage [10] == arrayImage [9] || arrayImage [10] == arrayImage [8] || arrayImage [10] == arrayImage [7] || arrayImage [10] == arrayImage [6] || arrayImage [10] == arrayImage [5] || arrayImage [10] == arrayImage [4] || arrayImage [10] == arrayImage [3] || arrayImage [10] == arrayImage [2] || arrayImage [10] == arrayImage [1] || arrayImage [10] == arrayImage [0])
{
arrayImage [10] = (int) (Math.random() * 12) + 1;
}
arrayImage [11] = (int) (Math.random() * 12) + 1;
while (arrayImage [11] == arrayImage [10] || arrayImage [11] == arrayImage [9] || arrayImage [11] == arrayImage [8] || arrayImage [11] == arrayImage [7] || arrayImage [11] == arrayImage [6] || arrayImage [11] == arrayImage [5] || arrayImage [11] == arrayImage [4] || arrayImage [11] == arrayImage [3] || arrayImage [11] == arrayImage [2] || arrayImage [11] == arrayImage [1] || arrayImage [11] == arrayImage [0])
{
arrayImage [11] = (int) (Math.random() * 12) + 1;
}
for (int x = 0 ; x <= 11 ; x++)
{
buttonArray [x] = new JButton ("" + arrayImage [x]);
buttonArray [x].setBackground (Color.orange);
}
for (int i = 0 ; i <= 11 ; i++)
{
buttonArray [i].setActionCommand ("" + arrayImage [i]);
}
return buttonArray;
}
這是我在主要方法中引入按鈕數組的方法。
static JButton btnStart, buttonArray[] = new JButton [12];
賦予它們顏色,以及循環用於按順序爲它們賦予每個動作偵聽器。
for (int x = 0 ; x <= 11 ; x++)
{
buttonArray [x] = new JButton ("");
buttonArray [x].setBackground (Color.orange);
}
ButtonHandler onClick = new ButtonHandler();
btnStart.addActionListener (onClick);
for (int y = 0 ; y <= 11 ; y++)
{
buttonArray [y].addActionListener (onClick);
}
這裏是面板的介紹,並將面板添加到面板中。然後將面板添加到框架上。
JPanel gameBoard = new JPanel (new GridLayout (2, 6));
gameBoard.setBackground (Color.orange);
JPanel gameContent = new JPanel (new GridLayout (1, 2));
JPanel mainGame = new JPanel (new BorderLayout());
//GAme Board
gameContent.add (btnStart);
gameContent.add (scoreOutput);
gameBoard.add (buttonArray [0]);
gameBoard.add (buttonArray [1]);
gameBoard.add (buttonArray [2]);
gameBoard.add (buttonArray [3]);
gameBoard.add (buttonArray [4]);
gameBoard.add (buttonArray [5]);
gameBoard.add (buttonArray [6]);
gameBoard.add (buttonArray [7]);
gameBoard.add (buttonArray [8]);
gameBoard.add (buttonArray [9]);
gameBoard.add (buttonArray [10]);
gameBoard.add (buttonArray [11]);
mainGame.add (gameBoard, BorderLayout.CENTER);
mainGame.add (gameContent, BorderLayout.PAGE_END);
Container contentPane1 = questions.getContentPane();
contentPane1.add (mainGame);
questions.setSize (500, 250);
questions.setVisible (true);
您可以使用一個字符串。當U第按下一個按鈕。在字符串中添加按鈕號。現在,當按下一個按鈕時,檢查最後一個被按下的數字和當前按鈕的數字,如果它大於先前的數字,那麼如果不是,則可以顯示錯誤。你也可以使用整型數組來存儲按下按鈕的值並檢查你的條件。回答是希望您對如何從字符串獲取單個字符以及如何將其轉換爲整數有足夠的瞭解。 –
是那個toString()命令? – Toni
你是什麼意思? – Toni