欢迎)遇到一点麻烦,请帮忙解决。代码如下:
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JComponent;
import javax.swing.JFrame;
class MyCanvas extends JComponent {
public void paint(Graphics g) {
Image img1 = Toolkit.getDefaultToolkit().getImage("yourFile.gif");
int width = img1.getWidth(this);
int height = img1.getHeight(this);
int scale = 2;
int w = scale * width;
int h = scale * height;
// explicitly specify width (w) and height (h)
g.drawImage(img1, 10, 10, (int) w, (int) h, this);
}
}
public class Graphics2DDrawScaleImage {
public static void main(String[] a) {
JFrame window = new JFrame();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setBounds(30, 30, 300, 300);
window.getContentPane().add(new MyCanvas());
window.setVisible(true);
}
}
如果我们运行代码,我们就会显示一张图片。但是我的任务是带来许多相同的图像,但在不同的地方。怎么做?)
如果您这样做:
for(int i = 0; i < 500 ; i+=100){
g.drawImage(img1, 10+i, 10, (int) w, (int) h, this);
}
然后图像会连续显示。我想要更多随机
最佳答案
And I would like more random
使用Random
类生成指定范围内的整数。您可能需要使用 getWidth()
和 getHeight()
来获取组件的边界,以便您可以指定实际范围。然后您可以随机化 x、y 值。
Random random = new Random();
int x = random(getWidth());
int y = random(getHeight();
您可能还需要考虑图像的宽度/高度,以确保它们完全包含在面板中。
此外,自定义绘制是通过重写 paintComponent(...)
方法而不是 Paint() 方法来完成的。
关于java - 随机输出图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19711349/