OK. It should work, as long as the image is on the class path. Not sure what 
the problem might be (FYI, this isn't specific to Pivot - getResource() is a 
standard JDK feature).


On Dec 8, 2010, at 9:43 PM, Luiz Gustavo wrote:

> I got an error:
> 
> 
> 
> java.lang.NullPointerException
>     at org.apache.pivot.wtk.media.Image$LoadTask.execute(Image.java:97)
>     at org.apache.pivot.wtk.media.Image.load(Image.java:144)
>     at org.apache.pivot.demos.memorygame.Main.startup(Main.java:46)
>     at 
> org.apache.pivot.wtk.DesktopApplicationContext$2.run(DesktopApplicationContext.java:594)
>     at 
> org.apache.pivot.wtk.ApplicationContext$QueuedCallback.run(ApplicationContext.java:1474)
>     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
>     at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
>     at 
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
>     at 
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
>     at 
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
>     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
>     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
>     at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
> 
> 
> 
> 2010/12/9 Greg Brown <[email protected]>
>> 2010/12/8 Greg Brown <[email protected]>
>> Ah, I see. You are calling ButtonData#setIcon(String) with that value. That 
>> method obtains the location of the image as relative to the classpath, so 
>> the leading "/" is required.
>> 
>> When using Pivot 1.5.2 I didn't need the leading "/". Well, I'll use it from 
>> now =)
> 
> Yes, that is something that changed in 2.0.
> 
>> I would probably use the setIcon(Image) version, and define a default Image 
>> instance by calling Image.load(). But either way will work.
>> 
>> I tried use the version you suggested, but I got an error 
>> (MalformedURLException).
>> Where am I missing something? See:
>> 
>> 
>> ...
>> private String defaultImage = "/img/default.gif";
>> private Image defaultImg;
>> ...
>> 
>> defaultImg = Image.load(new URL(defaultImage));
> 
> Try this:
> 
> defaultImg = Image.load(getClass().getResource("img/default.gif"));
> 
> (no leading slash)
> 
> 
> 
> 
> 
> -- 
> Luiz Gustavo S. de Souza
> 
> http://luizgustavoss.wordpress.com
> http://luizgustavoss.blogspot.com
> http://twitter.com/lugustso

Reply via email to