import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class ImagePanel extends JPanel implements ActionListener { Timer tm = new Timer(100,this); Image image; int xcord =20, ycord=20, vel=2; //constructor public void ImagePanel() { image = Toolkit.getDefaultToolkit().createImage("file and path name"); }//end image public void paintComponent(Graphics g) { super.paintComponent(g); try { image = ImageIO.read(new File("file and path name")); }//end try catch (IOException ex) { System.out.println("ERROR"); }//end catch if (image != null) { g.drawImage(this.image, 0, 0, this); g.setColor(Color.BLACK); g.drawString("I created this",xcord,ycord); }//end if tm.start();//starts the timer } public void actionPerformed(ActionEvent e) { if(xcord<0||xcord>200) vel=-vel; xcord = xcord + vel; if(ycord<0||ycord>200) vel=-vel; ycord = ycord + vel; repaint(); }//end act public static void main( ) { SwingUtilities.invokeLater(new Runnable() { public void run() { JFrame frame = new JFrame(); frame.add(new ImagePanel()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 400);//change size of frame frame.setLocationRelativeTo(null); frame.setVisible(true); }//end run }//end swingU );//end swing statement }//end main }//end class