为Java中的类项目构建一个简单的Rock Paper Scissors GUI游戏。
尝试使用MVC方法,我将resultsGUI()
下面的代码从我的“Controller”类移到了我的“View”类。
我尝试在Controller类中创建一个View类的实例,并调用这样的方法:view.resultsGUI();
但是在我的编译器中引发了异常错误。
如何调用驻留在我的View类中的resultsGUI
方法在chooseWinner()
方法(也在下方)的底部执行,因为代码在{{1}的一部分时执行}?
我是新手,感谢他们的帮助。
选择下面的方法:
chooseWinner()
resultsGUI方法如下: public void resultsGUI(){ JFrame rFrame =新的JFrame(“匹配结果”); Container panel = rFrame.getContentPane(); panel.setLayout(NULL);
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;
}
}
答案 0 :(得分:3)
您的控件应该具有视图和模型的实例,而不仅仅是任何视图和模型实例,而是活动的当前可视化视图和当前使用的模型。这样的事情可能在你的课堂上使用主要方法:
public static void main(String[] args) {
View view = new View();
Model model = new Model();
Control control = new Control(view, model);
// start the GUI up
}
在Control类中,您将使用构造函数参数来设置类字段:
public class Control {
private View view;
private Model model;
public Control(View view, Model model) {
this.view = view;
this.model = model;
}
// now your control can call model and view methods.
// ....
}
答案 1 :(得分:0)
您需要将您的Game
课程与其他课程一起编写。所以你明白了:
class Game
{
View view = new View();
public void foo()
{
view.getResults();
}
}
如果您不想实例化View
类,可以将getResults
函数标记为静态,并像这样引用它:
View.getResults()