 <p>I use successfully the following procedure to get images with SmartGWT working.</p> <p>At the same level as the <code>client</code> package of your GWT module I create a folder named <code>public</code>. (In Eclipse you cannot create a package named <code>public</code> because this is not a valid package name. You have to create it explicitly as a folder.) This directory with name <code>public</code> is treated special by GWT. The GWT compiler copies all the included content to the resulting main module directory. So I usually create a subdirectory <code>images</code> under <code>public</code> and put all the images belonging to my GWT module in there.</p> <p>For example:</p> <pre><code>com/stuff client Main.java ... public images a.png b.png mainmodule.gwt.xml </code></pre> <p>Then right at the beginning of the entry point I tell SmartGWT to look at the <code>images</code> subdirectory for the images (in this example is <code>mainmodule</code> the name of my main GWT module):</p> <pre><code>public void onModuleLoad() { Page.setAppImgDir("[APP]/mainmodule/images/"); ... } </code></pre> <p>The <code>[APP]</code> part of the path is special SmartGWT syntax.</p> <p>Later I am able to create an IButton like so:</p> <pre><code>final IButton aBtn = new IButton("A Button"); aBtn.setIcon("a.png"); </code></pre> <p>Sometimes it is necessary to create the URL to an image not for SmartGWT but for plain GWT or plain HTML. For these cases you can create the URL with</p> <pre><code>final String bUrl = GWT.getModuleBaseURL() + "images/b.png"; </code></pre>