我正在做一个“掷骰子”实验,因为我是一个全新的人,我似乎从中学到了很多东西。但我被困在这个地方,似乎找不到任何帮助。
我连接了一个随机数生成器,我可以在其中编辑骰子的“边”数,用户手动输入数字。我希望用户能够按下我添加的按钮之一,并将计算出的随机结果显示在底部。我不知道该怎么做,所以我会很感激一些见解,即使它只是一行。
另外,请告诉我我是否做错了什么,我在这方面真的很陌生,可以使用一些帮助!
这是我的代码:
import java.util.Scanner;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import java.applet.Applet;
public class randtest6t extends Applet
{
public static void main(String[] args)
{
int dieSides;
Scanner keyboard = new Scanner(System.in);
System.out.print("How many sides does the die need to be?");
dieSides = keyboard.nextInt();
int random = (int )(Math.random() * dieSides + 1);
System.out.println("You rolled a " + random + ".");
//NAMING BUTTONS
JButton button2 = new JButton("2");
JButton button4 = new JButton("4");
JButton button6 = new JButton("6");
JButton button8 = new JButton("8");
JButton button10 = new JButton("10");
JButton button12 = new JButton("12");
JButton button20 = new JButton("20");
JButton button50 = new JButton("50");
JButton button100 = new JButton("100");
//LABELS
JLabel sides = new JLabel("How many sides does the die need to be?");
JLabel text = new JLabel("Your roll =");
JLabel output = new JLabel(" " + random );
output.setFont(new Font("Serif", Font.PLAIN, 56));
text.setFont(new Font("Serif", Font.PLAIN, 20));
sides.setFont(new Font("Serif", Font.PLAIN, 20));
//NAMING PANELS
JPanel buttonpanel = new JPanel(new GridLayout(3,3));
JPanel outputpanel = new JPanel(new GridLayout(2,2));
//CONNECTING BUTTONS/TEXT/PANELS
outputpanel.add( text );
outputpanel.add( output );
buttonpanel.add( button2 );
buttonpanel.add( button4 );
buttonpanel.add( button6 );
buttonpanel.add( button8 );
buttonpanel.add( button10 );
buttonpanel.add( button12 );
buttonpanel.add( button20 );
buttonpanel.add( button50 );
buttonpanel.add( button100 );
JFrame diceFrame = new JFrame("Dice Roll");
diceFrame.add( sides, BorderLayout.NORTH );
diceFrame.add( outputpanel, BorderLayout.SOUTH );
diceFrame.add( buttonpanel, BorderLayout.CENTER );
diceFrame.setSize(500,500);
diceFrame.setVisible(true);
diceFrame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
}
很抱歉,如果我的格式错误或任何事情,我将非常感谢您的帮助!
另外要明确的是,我想要发生的是:
- 按下按钮 2
- 死边 = 2
- int random = (int)(Math.random() * dieSides + 1);
- 在 JFrame 上显示结果
我遇到的问题是我不能让 dieSides 依赖于按下的按钮。