0

ボタンをクリックするたびに1〜11の乱数を生成するJavaアプリケーションがあります。ボタンをクリックするたびに生成された数値を合計したいという問題があります。たとえば、ボタンを3回クリックした場合です。次に、ボタンをクリックするたびに作成された3つの乱数すべての合計が必要です。英語が下手で申し訳ありませんが、何か助けていただければ幸いです。

これが私のコードです:

  public class Game extends JFrame implements ActionListener{
private static JFrame frame;
private static JPanel p;
private static JButton b;
private static JButton choose;
private static JLabel random;
private static JLabel sumRandom;

public static void main(String[] args) {
    Game bl= new Game();
    bl.gui();


}
public void gui(){
    frame=new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(800, 500);
    frame.setLocation(500, 200);
    frame.setTitle("Blackjack");


    p= new JPanel();
    p.setLayout(null);
    p.setBackground(Color.GRAY);


    b = new JButton("Start play");
    b.setBounds(450, 50, 200, 50);

    b.addActionListener(this);

    choose= new JButton("choose");
    choose.setBounds(100, 50, 200, 50);
    choose.addActionListener(this);

    random= new JLabel("");
    random.setBounds(200, 150, 200, 50);

    sumRandom= new JLabel("");
    sumRandom.setBounds(30, 150, 200, 50);
    //text.setText();
    p.add(sumRandom);
    p.add(random);
    p.add(b);
    frame.add(p);
    frame.setVisible(true);
}

public void actionPerformed(ActionEvent e){

    if(e.getSource()== b){

        p.add(choose);
        b.setEnabled(false);
    }
    if(e.getSource()== choose){
        int randomNumbers = (int )(Math.random() * 11 + 1);
        random.setText(String.valueOf(random));
        int sum= randomNumbers++;
        sumRandom.setText(String.valueOf(sum));
    }
}

}

4

5 に答える 5

1

問題は何ですか?クラスに新しい int フィールドを追加します。次に、actionPerformed メソッドで生成された乱数を合計します。

于 2013-10-18T19:29:09.423 に答える
0

問題は

int sum= randomNumbers++;

スタニスラフが言ったように、現在の合計を取得して追加する必要があります。これは、 int フィールドなどを使用するか、sum = currentSum + randomNumbers;現在オンになっているテキストを解析することで実行できsumRandomます。

int currentSum = Integer.parseInt(sumRandom.getText());
currentSum += randomNumbers;
sumRandom.setText(String.valueOf(currentSum));

もちろん、この後者のアプローチは、sumRandom他の場所のテキストを設定しない場合にのみ使用する必要があり、前者の方が少しきれいだと思います。

于 2013-10-18T19:32:58.863 に答える
0

カードの値を合計するフィールドを追加します。新しいハンドが配られたときにフィールドの値をリセットするためのメカニズムがあることを確認してください。

于 2013-10-18T19:34:38.110 に答える
0

乱数が生成されたら、インスタンス変数または静的変数として合計変数を作成します。

sum += randomNumbers
于 2013-10-18T19:32:19.900 に答える