Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,如何通过按下按钮来显示新的随机图像?_Java_Swing_Awt_Javax.imageio - Fatal编程技术网

在Java中,如何通过按下按钮来显示新的随机图像?

在Java中,如何通过按下按钮来显示新的随机图像?,java,swing,awt,javax.imageio,Java,Swing,Awt,Javax.imageio,我希望这样,当用户按下掷骰子按钮时,程序会显示一个新的随机骰子图片。我已经设置好了它,这样它就可以更改显示图像的文件名,但实际上它不会更改图像。它只显示初始化的一个 导入java.awt.Color; 导入java.awt.Graphics; 导入java.awt.image.buffereImage; 导入java.io.File; 导入java.io.IOException; 导入java.util.Random; 导入java.util.logging.Level; 导入java.util

我希望这样,当用户按下掷骰子按钮时,程序会显示一个新的随机骰子图片。我已经设置好了它,这样它就可以更改显示图像的文件名,但实际上它不会更改图像。它只显示初始化的一个

导入java.awt.Color;
导入java.awt.Graphics;
导入java.awt.image.buffereImage;
导入java.io.File;
导入java.io.IOException;
导入java.util.Random;
导入java.util.logging.Level;
导入java.util.logging.Logger;
导入javax.imageio.imageio;
导入javax.swing.JPanel;
公共类GraphicPanel扩展了JPanel{
BuffereImage img=null;
私有整数指数=0;
String random=“one.png”;
String[]imageFileNameArray=新字符串[]{“one.png”、“two.png”、“three.png”、“four.png”、“five.png”、“six.png”};
图形面板(){
这个.背景(颜色.白色);
}
@凌驾
公共空间涂料(图g){
超级油漆(g);
字符串文件名=(“src/images/”+random);
试一试{
img=ImageIO.read(新文件(文件名));
}捕获(IOEX异常){
Logger.getLogger(GraphicPanel.class.getName()).log(Level.SEVERE,null,ex);
}
g、 绘图图像(img,200,50,100,100,本);
}
公开作废新卷(){
int idx=new Random().nextInt(imageFileNameArray.length);
字符串random=(imageFileNameArray[idx]);
系统输出打印项次(随机);
这个。重新绘制();
}
}

在设置过程中,您需要在Jframe中添加一个按钮,并注册一个事件侦听器,其方法与newRoll()相同。

这是因为
random
始终等于
one.png
。在方法
newRoll
中,不更改
random
类属性。您可以创建一个新变量。在
newRoll
方法中,从
stringrandom
中删除
String
。很好地解决了这个问题。谢谢@namenotfound这不是JavaFX。你说得对。修复了@M.S.I的标签,所有这些都设置在单独的类中,所有这些类都工作正常。如上所述,在
newRoll
方法中从
String random
中删除
String
,将其正确修复。