Hi People,

I am trying to run this file but I am having trouble getting the program to incorporate the gif file that I need. Here's the program.

// Demonstrating JDesktopPane

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class DesktopTest extends JFrame
{
    public DesktopTest()
    {
        super("Using a JDesktopPane");

        JMenuBar bar = new JMenuBar();
        JMenu addMenu =  new JMenu("Add");
        JMenuItem newFrame = new JMenuItem("Internal Frame");
        addMenu.add(newFrame);
        bar.add(addMenu);
        setJMenuBar(bar);

        final JDesktopPane theDesktop = new JDesktopPane();
        getContentPane().add(theDesktop);

        newFrame.addActionListener(
                new ActionListener()
                {
                    public void actionPerformed(ActionEvent e)
                    {
                        JInternalFrame frame = new JInternalFrame("Internal Frame", true, true, true, true);
                        Container c = frame.getContentPane();
                        MyJPanel panel = new MyJPanel();
                        c.add(panel, BorderLayout.CENTER);
                        frame.setSize(
                                panel.getImageWidthHeight().width,
                                panel.getImageWidthHeight().height);
                        frame.setOpaque(true);
                        theDesktop.add(frame);
                    }
                }
            );

        setSize(500, 400);
        setVisible(true);

        addWindowListener(
                new WindowAdapter()
                {
                    public void windowClosing(WindowEvent e)
                    {
                        System.exit(0);
                    }
                }
            );
    }

    public static void main(String args[])
    {
        new DesktopTest();
    }

    class MyJPanel extends JPanel
    {
        private ImageIcon imgIcon;

        public MyJPanel()
        {
            imgIcon = new ImageIcon("jhtp3.gif");
        }

        public void paintComponent(Graphics g)
        {
            imgIcon.paintIcon(this, g, 0, 0);
        }

        public Dimension getImageWidthHeight()
        {
            return new Dimension (imgIcon.getIconWidth(),
                                  imgIcon.getIconHeight());
        }
    }
}

// Here is the location of the gif file.  

// [url]http://www.pkidd.com/556/EXAMPLES/ch26/images/[/url]
// the file is: jhtp3.gif

I am using the eclipse IDE.

I would like to continue using the Eclipse IDE.

My path is

/Users/mariafpinheiro/Documents/workspace/exercises/Chapter_13_Advanced_GUI/Figure_13_10

Thanks.

Edited 3 Years Ago by mike_2000_17: Fixed formatting

if you just say

imgIcon = new ImageIcon("jhtp3.gif");

it's probably going to assume that jhtp3.gif is located somewhere under your current project. So download it and put it there, or at least download it to your computer and specify the pathname in your argument to ImageIcon.

Also, use code tags.

Good point. You can also put it under the current project though, right? I seem to remember doing that a few times in the past and having no problems with it.

Good point. You can also put it under the current project though, right? I seem to remember doing that a few times in the past and having no problems with it.

That doesn't work.

Did you try puttin the image in a local directory. for example in "/home/myImgage/jhtp3.gif" directly, becouse doing it the othre way will go until the current directory, or up to your classpath directory, also you can use creating a new object File, which can give you the current directory. And that can be very helpfull.

File f = new File(".");
f.getCanonicalPath(); //gives you the current path

This article has been dead for over six months. Start a new discussion instead.