How to draw image on top most Layer?

my java file is @ http://www.geocities.com/giasens/files/JavaBingo.zip

i have created CardLayout,
inside a "card", i hav many inner BorderLayout(s)
now, i just realise i couldnt drawImage on my top most layer...

can any one HELP me?? thanks.. ..

btw, can anyone suggest me where to learn paint() ??
i couldnt get what's repaint() about...

thanks again.
SaiSengAsked:
Who is Participating?
 
CEHJCommented:
Why not just add an Image in an ImageIcon in a JLabel?
0
 
SaiSengAuthor Commented:
btw, the following image shows what i want to paint on
http://www.geocities.com/giasens/files/myBox.JPG

thanks
0
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
CEHJCommented:
Yes. where it's marked 'box' should be a JLabel with your image in it, as shown in the above example
0
 
WebstormCommented:
Hi SaiSeng,

Your links seems not good : "This page is not available. " or "Sorry, the page you requested was not found. "

>> i just realise i couldnt drawImage on my top most layer...
  public void paint(Graphics g)
  {
     g.drawImage(img,0,0,null); // Image img already loaded
  }

0
 
WebstormCommented:
>> Your links seems not good
In fact your links are good if we first visit your home page : http://www.geocities.com/giasens/

0
 
WebstormCommented:
Replace:
      public void paint(Graphics g)
      {
             g.drawImage(box, 80, 80, this);
      }

By:
      public void paint(Graphics g)
      {
                      g.drawImage(box, 80, 80, this);
                      super.paint(g); // for lightweight child components
      }
0
 
CEHJCommented:
>>public void paint(Graphics g)

Actually that is not the way to do things if using Swing. See here for how to:

http://www.experts-exchange.com/Programming/Programming_Languages/Java/Q_20927185.html
0
 
WebstormCommented:
By:
     public void paint(Graphics g)
     {
            g.drawImage(box, 20, 140, this);  // 20,140 as in myBox.jpg
            super.paint(g); // for lightweight child components
     }
0
 
WebstormCommented:
You can wait until the image is loaded:

   public void init()
   {
        box = getImage(getCodeBase(), "box.jpg");
        MediaTracker tracker = new MediaTracker(this);
        tracker.addImage(box, 0);
        try{
        tracker.waitForAll();
        }catch(Exception e){e.printStackTrace();}
0
 
CEHJCommented:
Using an ImageIcon will get you out of all the little gotchas caused by Java loading its images aynchronously, apart from saving you having to rewrite your JPanel as a JPanel subclass
0
 
SaiSengAuthor Commented:
paint doesnt help... but Jlabel...
thanks anyway ;)
now i'm trying to addMouseListener on the icon ;)

/*
 * ImageIcon icon = new ImageIcon("box.jpg");
 * JLabel label = new JLabel(icon);
 */
0
 
CEHJCommented:
:-)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.