在java中的小程序窗口上上载随机图像
我一直在尝试将一个图像上传到Java小程序窗口,但不幸的是结果是空的。下面是我编写的代码,请帮助在java中的小程序窗口上上载随机图像,java,image,swing,jframe,awt,Java,Image,Swing,Jframe,Awt,我一直在尝试将一个图像上传到Java小程序窗口,但不幸的是结果是空的。下面是我编写的代码,请帮助 import java.awt.*; import javax.swing.*; import java.awt.geom.*; import java.net.*; import java.util.*; public class RandomImages extends JFrame { private Image img; public void static main(String[
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
import java.net.*;
import java.util.*;
public class RandomImages extends JFrame
{
private Image img;
public void static main(String[] args)
{
new RandomImages();
}
public RandomImages()
{
super("Random Images");
setSize(450,450);
setVisible(true);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Toolkit tk=Toolkit.getDefaultToolkit();
img=tk.getImage(getURL("Your File Name"));
}
下面是获取文件名的url以查找
private URL getURL(String filename)
{
URL url=null;
try{
url=this.getClass().getResource(filename);
}
catch(Exception e) {}
return url;
}
AffineTransform id=new AffineTransform();
油漆组件的代码
public void paint(Graphics g)
{
super.paint(g);
Graphics2D g2d=(Graphics2D)g;
AffineTransform trans=new AffineTransform();
Random rand=new Random();
g2d.setColor(Color.BLACK);
width=getSize().width;
height=getSize().height;
g2d.fillRect(0,0,width,height);
在屏幕上生成随机船舶的循环
for(int s=0;s<20;s++)
{
trans.setTransform(id);
trans.translate(rand.nextInt()%width,rand.nextInt()%height);
trans.rotate(Math.toRadians(360*rand.nextDouble()));
double scaled=rand.nextDouble()+1;
trans.scale(scaled,scaled);
trans.drawImage(img,trans,this);
}
}
}
for(int s=0;s在JFrame
中添加图像的最佳方法是使用JLabel
例如:
JLabel image = new JLabel(new ImageIcon("Image.jpg"));
现在将此JLabel(图像)添加到JFrame中
public RandomImages()
{
super("Random Images");
setSize(450,450);
setVisible(true);
setLayout(new FlowLayout());//you have not used the Layout
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel image = new JLabel(new ImageIcon("Image.jpg"));
add(image);
}
另一种方法是在paint(Graphics g)
函数中使用Graphics类的函数。
但是对于需要使用JComponent
的自定义绘图,您应该使用paintComponent
,而不是使用paint(图形g)
。例如,在JPanel
和“添加”面板上绘制图像。您的JFrame
不是JComponent
2) 据我所知,publicstaticvoidmain(String[]args)
;)
阅读更多信息。1)要更快获得更好的帮助,请发布一个。2) 例如,获取图像的一种方法是热链接到中看到的图像。java中的所有方法都以小写开头。@nishpystoned您确定您已经编写了setLayout(new FlowLayout)?@AJ.Nope,当我使用它时,它会给我错误提示:“C:\Users\Owner\Documents\java\bitmap\RandomImages.java:21:'('或'['预期的setLayout(新建FlowLayout);^“@nishpystoned我的代码中有一个错误,请使用“setLayout(新建FlowLayout());”抱歉that@AJ.Well现在没有错误,但它仍然是没有图像的空白视图。。