我对Dice
的此脚本有疑问。我使用Math.random
编写了一个方法,现在我希望在我的程序中获得结果String
。
按钮必须掷骰子。
所以我的方法gooien滚动骰子并给我1到6之间的数字。 JButton正在召回这种重新骰子的方法。
现在我想要将数字重新转换为字符串。
// paneel met 3 tekstvakken
class dobbelsteentjes1 extends JPanel {
private JButton gooien;
public dobbelsteentjes1(){
gooien=new JButton ("Gooien");
gooien.addActionListener(new gooienHandler());
add(gooien);
}
//inwendige klasse
class gooienHandler implements ActionListener{
public void actionPerformed (ActionEvent e){
gooien();
}
}
public void gooien(){
double gooi1, gooi2,worp1;
gooi1= Math.random();
gooi2=Math.random();
worp1=gooi1*6+1;
}
public void paintComponent ( Graphics g ) {
super.paintComponent( g );
g.drawString( "U heeft gegooid:" + worp1, 50, 30);
}}
有什么想法吗?
答案 0 :(得分:0)
这是因为程序的范围。您在编程语言中看到变量是作用域的。基本上你只有gooien()方法中的变量worp1作用域。在这种方法之外,什么都看不到这个变量。你可以做的是在你的类中声明worp1,如下所示:
class dobbelsteentjes1 extends JPanel {
private JButton gooien;
double worp1 = 0;
然后你的方法应该是这样的:
public void gooien(){
double gooi1, gooi2;
gooi1= Math.random();
gooi2=Math.random();
worp1=gooi1*6+1;
}
然后你可以在paintComponent
中使用这个变量。在我的示例中,worp1是类的属性,它将从您的类实现的每个方法中可见。
答案 1 :(得分:0)
我想你想要Math.random()的String类型变量; 所以,试试这个:String var1 = Math.random()+“”;创建字符串类型变量。
答案 2 :(得分:0)
如果我理解正确,你试图在drawString方法中绘制worp1的值。但drawString方法属于Java Graphics库。这意味着您可以以两种形式使用它;
drawString(AttributedCharacterIterator iterator, int x, int y);
drawString(String str, int x, int y);
(如果你想在这里深入学习来源:https://docs.oracle.com/javase/7/docs/api/java/awt/Graphics.html)
所以,你必须将warp1参数的double值转换为String形式,如下所示: g.drawString(“U heeft gegooid:”+ Double.toString(warp1),50,30);
希望它有所帮助。