在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[

我一直在尝试将一个图像上传到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[] 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现在没有错误,但它仍然是没有图像的空白视图。。