2016-05-23 3 views
0

私の質問は、押されたボタンの値が前の値より大きいかどうかを判断するために、buttonHandler() 。ですから、私が探しているのは、ボタンをクリックしている人が、表示されている数字に基づいて昇順にクリックしていることを確認する方法です。これは、機敏さを評価するために昇順でボタンをクリックすることに基づくGUIゲームです。JButtonがそのテキストに基づいて昇順に押されていることを確認する方法

ボタン配列に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); 
+0

.When uの最初のボタンを押します。文字列にボタン番号を追加します。次のボタンが押されたときに最後に押された番号と現在のボタンの番号をチェックし、前の数字より大きい場合はエラーを表示できます。整数配列を使用して、プレスボタンの値を格納し、ur条件をチェックすることもできます。文字列から単一の文字を取得する方法と、文字列を整数に変換する方法について十分な知識があることを願って答えが与えられます。 –

+0

はtoString()コマンドですか? – Toni

+0

どういう意味ですか? – Toni

答えて

0

まず、ボタンの名前として数字を入力する必要があります。 1つのアレイと一つの変数ます:コンストラクタで0にn個の

int pressed[] = new int[12]; 
int n; 

設定値を あなたは次のように行うことができます。 今のactionPerformed(のActionEvent AE)での方法:

if(pressed.length==0) 
    pressed[n]=Integer.parseInt(ae.getActionCommand()); 

else 
    Check if last number in array is less than current number 
    else show error 

あなたが使用して最後の番号を取得できます。 押す[pressed.length-1]あなたが1つの文字列を使用することができます

関連する問題