2015-10-16 47 views
0

我想在我的Java桌面应用程序中构建一个简单的系统通知。因此,在网络上进行一些搜索后,我发现JCarrierPigeon库可以执行此操作。如何在java桌面应用程序中实现系统通知

所以插入后两个库我有这样的代码:

package prove; 

import javax.swing.JFrame; 

import net.sf.jcarrierpigeon.Notification; 
import net.sf.jcarrierpigeon.NotificationQueue; 
import net.sf.jcarrierpigeon.WindowPosition; 

public class NOtification { 

    public static void main(String[] args){ 
     NotificationQueue queue = new NotificationQueue(); 



      JFrame window1 = new JFrame(); 

      Notification note1 = new Notification(window1, WindowPosition.BOTTOMRIGHT, 25, 25, 1000); 

      queue.add(note1); 
    } 
} 

但是,如果我尝试运行它,我有这样的错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/jdesktop/animation/timing/TimingTarget 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    at prove.NOtification.main(NOtification.java:18) 
Caused by: java.lang.ClassNotFoundException: org.jdesktop.animation.timing.TimingTarget 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    ... 13 more 

我怎么固定呢?

+0

是运行时在classpath中的carrierpigeon jar吗? – vikingsteve

+0

我已经做了,右键点击项目,Propeties然后我添加JCarrierPiegon.jar – bircastri

+0

您还需要包含时序框架jar:[“首先,请确保在您的类路径中包含时序框架库。”](http ://jcarrierpigeon.sourceforge.net/) – Fildor

回答

0

Homepage of JCarrierPidgeon状态:

"First of all, be sure to include the Timing Framework library in your classpath."

而且errormessage的样子你没有做到这一点。

主页还提供了该库的链接。我不会在这里做,因为它很可能会过时。

+0

是是的我已经包含JCarrierPidgeon和Timing Framework库,但不能正常工作 – bircastri

+0

确保Timing Framework在类路径中,因为org.jdesktop.animation.timing.TimingTarget绝对是该jar中的一个类。 – Fildor

+0

我刚刚找到解决方案。在这个时候,我已经从官方网站下载了swing应用程序的Timing Framework,但是正确的jar文件在classi应用程序库上。现在工作 – bircastri

相关问题