1

Java でクラス プロジェクト用の単純なじゃんけん GUI ゲームを作成します。

MVC 方法論を使用しようとして、resultsGUI()以下のコードを「コントローラー」クラスから「ビュー」クラスに移動しました。

Controller クラスで View クラスのインスタンスを作成し、次のようにメソッドを呼び出してみview.resultsGUI();ましたが、コンパイラで例外エラーがスローされました。

resultsGUIView クラスにあるメソッドを呼び出してchooseWinner()、コードが の一部であったときのように、メソッドの下部 (以下も)で実行するにはどうすればよいchooseWinner()ですか?

私は初心者で、助けに感謝します。

以下の chooseWinner メソッド:

    public static void chooseWinner(int x) {
    playerChoice = x;

    String winningCombo = "" + Math.min(compChoice, playerChoice)
            + Math.max(compChoice, playerChoice);

    switch (Integer.parseInt(winningCombo)) {
        case 1:
            text = "Paper wins!";
            if (playerChoice == 2) {
                playerWon = 1;
            }
            break;
        case 2:
            text = "Rock wins!";
            if (playerChoice == 1) {
                playerWon = 1;
            }
            break;
        case 3:
            text = "Scissors wins!";
            if (playerChoice == 3) {
                playerWon = 1;
            }
            break;

    }

    if (playerWon == 1) {
        text1 = "Congrats, you win!";
        playerWon = 0;
        win = win + 1;
        total = total + 1;
    } else if (playerWon == 2) {
        text1 = "It's a tie!";
        playerWon = 0;
    } else {
        text1 = "Computer wins!";
        total = total + 1;
    }




}  

以下の resultsGUI メソッド: public void resultsGUI() { JFrame rFrame = new JFrame("Match Results"); コンテナ パネル = rFrame.getContentPane(); panel.setLayout(null);

    JLabel l0 = new JLabel(controller.text1 + controller.text);
    l0.setBounds(75, 10, 300, 35);
    panel.add(l0);


    //show the result in a new splash screen

    JLabel l1 = new JLabel("Human's Choice");
    l1.setBounds(40, 35, 150, 35);
    panel.add(l1);

    JLabel l2 = new JLabel("Computer's Choice");
    l2.setBounds(215, 35, 150, 35);
    panel.add(l2);

    JLabel l3 = new JLabel(new ImageIcon(System.getProperty("user.dir") + "/image/" + (controller.playerChoice - 1) + ".jpg"));
    l3.setBounds(10, 100, 170, 60);
    panel.add(l3);

    JLabel l4 = new JLabel(new ImageIcon(System.getProperty("user.dir") + "/image/" + (controller.compChoice - 1) + ".jpg"));
    l4.setBounds(200, 100, 170, 60);
    panel.add(l4);

    JLabel l5 = new JLabel("Win/Loss rate: " + controller.win + "/" + controller.total);
    l5.setBounds(125, 25, 150, 350);
    panel.add(l5);

    JLabel l6 = new JLabel("Tie: " + controller.tie);
    l6.setBounds(125, 30, 125, 370);
    panel.add(l6);

    rFrame.setSize(400, 270);
    rFrame.setVisible(true);
}
4

2 に答える 2