我正在使用javaFX制作一个java扑克应用程序。我特别喜欢java和javaFX。当我的代码编译时,我似乎没有得到任何明确的错误,但是当我运行程序并点击按钮时,#34; New Game"按钮,我的应用程序停止响应,我不知道为什么。
Opponent类是一个抽象接口,在这个类中有四个类来描述对手的类型。
Opponent类声明为:
public abstract interface Opponent
和一种类型的对手写成:
public static class tightAggressiveOpponent extends Player
implements Opponent
我在发布问题之前尝试解决此问题。如果有人能提供任何建议,我将不胜感激?实际按钮本身的代码是:
public void handleNewGameButtonAction(ActionEvent event) {
run();
}
public void run()
{
this.gameInfoText.set("Run method called");
Table table = new Table();
Deck deck = new Deck();
Pot pot = new Pot();
player1 = new Player("Oliver", false, pot, Boolean.valueOf(true));
Opponent.tightAggressiveOpponent opponent = new Opponent.tightAggressiveOpponent("Jeremy (TA)", true, pot, table);
player1.setOpponentPlayStyle(opponent.getPlayStyle());
opponent.setOpponent(player1);
playGame(player1, opponent, table, deck, pot);
}
答案 0 :(得分:0)
看起来你在方法playGame
中有一个无限循环或阻塞操作。
您应该在后台线程中运行此方法。例如:
new Thread(new Runnable(){
public void run(){
playGame(player1, opponent, table, deck, pot);
}
}).start();
此外,您不能/不应该从后台线程更新UI。因此,在playGame方法中使用如下代码来更新UI:
Platform.runLater(new Runnable(){
public void run(){
textArea.setText("something");
}
});