自学JAVA求助 在JFrame中显示图片!!
「已注销」 2010-03-12 08:22:09 *************************************************
import java.awt.Container;
import javax.swing.JFrame;
public class ImageFrame extends JFrame
{
public ImageFrame()
{
setTitle("显示图片");
setSize(600,400);
//将 panel加入到Frame中
ImagePanel panel=new ImagePanel();
Container contentPane=getContentPane();
contentPane.add(panel);
}
}
*****************************************************
import java.awt.*;
import javax.swing.*;
public class ImageShow
{
public static void main(String arg[])
{
ImageFrame frame=new ImageFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
*********************************************************
以上是两个辅助的类
*********************************************************
import java.awt.*;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
public class ImagePanel extends JPanel
{
private Image image[];
String[] filename={"E:\\eclipse\\workspace\\com\\01.JPG","E:\\eclipse\\workspace\\com\\02.JPG"
,"E:\\eclipse\\workspace\\com\\03.JPG","E:\\eclipse\\workspace\\com\\hudie.GIF"};
ImageIcon[] images;
int i=0; //循环变量
MediaTracker tracker=new MediaTracker(this);
public void paintComponent(Graphics g)
{
super.paintComponents(g);
for(i=0;i<4;i++){
images[i]=new ImageIcon(filename[i]);
image[i]=images[i].getImage();
System.out.print(1);
tracker.addImage(image[i],i);
System.out.print(1);
try
{
tracker.waitForID(1);
}catch(InterruptedException exception)
{System.out.print(222222221);}
int imageWidth=image[i].getWidth(this);
int imageHeight=image[i].getHeight(this);
int frameWidth=getWidth();
int frameHeight=getHeight();
int x=(frameWidth-imageWidth)/2;
int y=(frameHeight- imageHeight)/2;
g.drawImage(image[i], x, y, null);
}
}
}
*******************************************************************
问题出在类 ImagePanel 中,我想在JFrame中连续的显示这4张图片不知道为什么不可以,就是把public void paintComponent(Graphics g)中的for{i=0;i++;i<4}去掉了,还是不可以
把 ImagePanel 类改成以下方法 显示一张图片才可以,希望高人帮忙解答,怎么让它可以连续的显示几张图片!!
*********************************************************************
public class ImagePanel extends JPanel
{
private Image image;
ImageIcon images=new ImageIcon("E:\\eclipse\\workspace\\com\\01.JPG");
public ImagePanel()
{
}
public void paintComponent(Graphics g)
{
image=images.getImage();
MediaTracker tracker=new MediaTracker(this);
tracker.addImage(image, 1);
try
{
tracker.waitForID(1);
}catch(InterruptedException exception)
{}
super.paintComponents(g);
int imageWidth=image.getWidth(this);
int imageHeight=image.getHeight(this);
int frameWidth=getWidth();
int frameHeight=getHeight();
int x=(frameWidth-imageWidth)/2;
int y=(frameHeight- imageHeight)/2;
g.drawImage(image, x, y, null);
}
}