我可以从Swing Mouse Adapater / Listener方法获取数据吗?

时间:2019-05-17 16:56:30

标签: java swing

我正在编写游戏,我试图通过在用户界面中单击按钮来获得掷骰子的价值。

我不太熟悉MVC原理,但是我听说这是要走的路。有关如何从此代码到达那里的任何提示?

int move = -1;
while (move == -1) {
    this.btnLancerLeD.addMouseListener(new MouseAdapter() {

        public int diceRoll;

        @Override
        public void mouseClicked(MouseEvent arg0) {
            diceRoll = jeu.getDe().lancer();
            move = diceRoll;
        }
    });
}

我正试图获得diceRoll值来移动我的棋手。

1 个答案:

答案 0 :(得分:0)

首先,您应该只调用一次addMouseListener(),而不要在while循环中重复进行一次。其次,您可以在mouseClicked()内部进行“移动”的逻辑。您可能需要一个if语句。

请注意,Swing已经包含了等待用户做某事的逻辑。这是事件侦听器的重点。仅在该事件发生时才触发它们。如果是按钮,则应使用ActionListener而不是MouseListener。有关更多详细信息,建议您查看Swing的官方Oracle教程。您可以通过Google的快速搜索找到这些内容。