在java中随机显示同一张图片10到10次,并以3张没行的方式去显示要怎么做
时间: 2024-03-21 19:43:55 浏览: 61
jq实现 随机显示几张不重复的图片 兼容IE
首先,你需要有一张要随机显示的图片。
然后,你可以使用Java中的Random类来生成随机数,从而随机显示同一张图片。具体实现代码如下:
```java
import java.awt.*;
import java.awt.image.BufferedImage;
import java.util.Random;
import javax.swing.*;
public class RandomImageDisplay extends JPanel {
private static final int ROWS = 3;
private static final int COLS = 3;
private static final int IMAGE_COUNT = ROWS * COLS;
private BufferedImage image;
public RandomImageDisplay(BufferedImage image) {
this.image = image;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
int imageWidth = image.getWidth();
int imageHeight = image.getHeight();
int panelWidth = getWidth();
int panelHeight = getHeight();
int imageX = (panelWidth - imageWidth) / 2;
int imageY = (panelHeight - imageHeight) / 2;
g.drawImage(image, imageX, imageY, null);
}
public static void main(String[] args) {
BufferedImage image = /* 读取图片 */;
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new GridLayout(ROWS, COLS));
Random random = new Random();
for (int i = 0; i < IMAGE_COUNT; i++) {
int count = random.nextInt(10) + 1;
JPanel panel = new JPanel(new BorderLayout());
panel.add(new RandomImageDisplay(image));
JLabel label = new JLabel("Count: " + count);
label.setHorizontalAlignment(JLabel.CENTER);
panel.add(label, BorderLayout.SOUTH);
frame.add(panel);
}
frame.pack();
frame.setVisible(true);
}
}
```
这段代码中,我们使用了JPanel来包含要显示的图片,并使用JLabel来显示随机次数。我们使用GridLayout来排列这些JPanel,以3张图片一行的方式显示。
具体来说,我们使用Random类生成随机数,随机生成一个1到10之间的整数作为图片显示的次数。然后,我们将包含图片和随机次数的JPanel添加到JFrame中。最后,我们调用frame.pack()和frame.setVisible(true)来显示窗口。
注意:这段代码中使用了AWT/Swing的GUI组件,需要在GUI线程中运行。
阅读全文