繁体   English   中英

如何在 Java 中按下按钮使新的随机图像出现?

[英]How do I make a new random image appear with a button press in Java?

我想让它在用户按下掷骰子按钮时,程序显示一个新的随机骰子图片。 我已经设置好它应该更改显示图像的文件名,但它实际上并没有更改图像。 它只显示初始化的一个。

import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Random;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.JPanel;

public class GraphicPanel extends JPanel {

    BufferedImage img = null;
    private int index = 0;
    String random = "one.png";

    String[] imageFileNameArray = new String[] {"one.png", "two.png", "three.png", "four.png", "five.png", "six.png"};

    GraphicPanel() {
        this.setBackground(Color.WHITE);
    }

    @Override
    public void paint(Graphics g) {
        super.paint(g);

        String fileName = ("src/images/" + random);

        try {
            img = ImageIO.read(new File(fileName));
        } catch (IOException ex) {
            Logger.getLogger(GraphicPanel.class.getName()).log(Level.SEVERE, null, ex);
        }

        g.drawImage(img, 200, 50, 100, 100, this);
    }

    public void newRoll(){
        int idx = new Random().nextInt(imageFileNameArray.length);
        String random = (imageFileNameArray[idx]);
        System.out.println(random);
        this.repaint();
    }
}

您需要在设置期间向 Jframe 添加一个按钮并注册一个事件侦听器,其方法执行 newRoll() 的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM