在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
,将其正确修复。