gpt4 book ai didi

java - 如何为骰子制作 Action 监听器按钮?

转载 作者:行者123 更新时间:2023-12-04 05:50:24 24 4
gpt4 key购买 nike

我正在制作一个棋盘游戏,我需要操作一个像骰子一样操作的按钮。在我的框架中,我有掷骰子按钮,它旁边是一个 JLabel,它将显示骰子的结果。问题是我在不同的类中有一个骰子的编码,而另一个类中有一个按钮。我有一个 Action 类,它将保存 Action 监听器的代码。我该如何实现?下面是我的代码。
游戏 View 类:

 public void gui()
{
BorderLayout borderlayout = new BorderLayout();

//Creates the frame, set the visibility to true, sets the size and exit on close
JFrame frame = new JFrame("Games");
frame.setVisible(true);
frame.setSize(600,400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Creates the Throw Dice button
Panel p = new Panel();
p.setLayout(new GridLayout());
p.add(new Button("Throw Dice"));
p.add(new Label("Dice Draw")); //This is where I want the dice result to be shown when hit the button
p.setBackground(new Color(156, 93, 82));
frame.add(p, BorderLayout.SOUTH);
骰子类:
public class Dice
{
//stores the dice result in the variable
private int diceResult;

/**
* Constructor for objects of class Dice
*/
public Dice()
{
this.diceResult = diceResult;
}

/**
* Generates a random number between 1 and 5
*/
public void randomGenerator ()
{
Random dice = new Random();
diceResult = dice.nextInt(5)+1;
System.out.println(diceResult);
}
}
Action 类:
public class Action
{
public void actionPerformed (ActionEvent e)
{
}
}

最佳答案

在像这样的简单示例中,我可以建议您使用实现 ActionListener 的匿名类的优点。像这样。

    BorderLayout borderlayout = new BorderLayout();      

//Creates the frame, set the visibility to true, sets the size and exit on close
JFrame frame = new JFrame("Games");
frame.setVisible(true);
frame.setSize(600,400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


//Creates the Throw Dice button
Panel p = new Panel();
p.setLayout(new GridLayout());

final Dice dice = new Dice();
Button button = new Button("Throw Dice");
final Label label = new Label("Dice Draw");

button.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
dice.randomGenerator();
label.setText(Integer.toString(dice.getDiceResult()));
}
});

p.add(button);
p.add(label); //This is where I want the dice result to be shown when hit the button
p.setBackground(new Color(156, 93, 82));
frame.add(p, BorderLayout.SOUTH);

您还必须添加 getDiceResult方法到您的 Dice类(class)。

关于java - 如何为骰子制作 Action 监听器按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10132216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com