Portál AbcLinuxu, 13. května 2025 16:36
V mem programu mam label ve kterem zobrazuji obrazek, dany kod je tento:
jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/smile.png")));
Vytvoril jsem si udalost kliknuti levym tlacitkem na tento label a chci aby se po kliku obrazek zmenil, vlozim tedy do te metody tento kod:
jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/redcross.png")));
Program se prelozi, ale po kliknuti na label mi program vysype do konzole toto:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at javax.swing.ImageIcon. init (ImageIcon.java:155) at gui.JFrame1.jLabel3MouseClicked(JFrame1.java:259) at gui.JFrame1.access$800(JFrame1.java:8) at gui.JFrame1$9.mouseClicked(JFrame1.java:179) at java.awt.Component.processMouseEvent(Component.java:6111) at javax.swing.JComponent.processMouseEvent(JComponent.java:3276) at java.awt.Component.processEvent(Component.java:5873) at java.awt.Container.processEvent(Container.java:2105) at java.awt.Component.dispatchEventImpl(Component.java:4469) at java.awt.Container.dispatchEventImpl(Container.java:2163) at java.awt.Component.dispatchEvent(Component.java:4295) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4134) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055) at java.awt.Container.dispatchEventImpl(Container.java:2149) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4295) at java.awt.EventQueue.dispatchEvent(EventQueue.java:604) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177) at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
Oba obrazky existuji. Nevite prosim co s tim?
gui.JFrame1.access$800
Omlouvam se, moje chyba, ten druhy obrazek ma priponu jpg, cehoz jsem si nevsiml. Priponu jsem tedy opravil, ale ted mi to haze pro zmenu toto:
sun.awt.image.ImageFormatException: Wrong JPEG library version: library is 62, caller expects 70 at sun.awt.image.JPEGImageDecoder.readImage(Native Method) at sun.awt.image.JPEGImageDecoder.produceImage(JPEGImageDecoder.java:136) at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:264) at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:189) at sun.awt.image.ImageFetcher.run(ImageFetcher.java:153)
Program chce verzi knihovny libjpeg 7 a rika ze mam verzi 6.2
Zde je vypis jak to opravdu je:
$ ls -l /usr/lib | grep libjpeg -rw-r--r-- 1 root root 245342 2009-06-27 11:54 libjpeg.a lrwxrwxrwx 1 root root 16 2009-06-27 11:54 libjpeg.so -> libjpeg.so.7.0.0 -rwxr-xr-x 1 root root 140588 2009-07-15 13:34 libjpeg.so.62 -rwxr-xr-x 1 root root 140588 2009-07-15 13:34 libjpeg.so.62.0.0 lrwxrwxrwx 1 root root 16 2009-06-27 11:54 libjpeg.so.7 -> libjpeg.so.7.0.0 -rwxr-xr-x 1 root root 226063 2009-06-27 11:54 libjpeg.so.7.0.0
Knihovnu libjpeg mam nejnovejsi verzi 7 a tu verzi 62 tam mam jen aby mi fungovaly nejake starsi programy (napr. gwenview pro kde3). Proc si program tedy nevezme tu novejsi verzi 7 kdyz tam je?
Jo tak to je taky moznost Ale me by opravdu zajimalo proc si nevezme tu novejsi knihovnu a rad bych to vyresil nejak elegantneji, vi nekdo prosim?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.