程序简单描述如下:package icq.trayIcon;public class TrayToolKit {
private static boolean _isStop = false;
public static WindowsTrayIcon _icon = null;
public static void main(String[] args) {
try {
//第一次得到环境 这里可以成功得到
Context context = new InitialContext()
//得到环境后的系列操作;
}
catch (Exception ex) {
ex.printStackTrace();
}
TrayToolKit toolKit = new TrayToolKit();
toolkit.showMessageTip("系统消息提示");
} public boolean showMessageTip(String appName) {
try {
stop(false);
Image imgs[] = new Image[5];
imgs[0] = new ImageIcon(icon.GetIcons.class.
getResource("pic1.gif")).getImage();
imgs[1] = new ImageIcon(icon.GetIcons.class.
getResource("pic2.gif")).getImage();
imgs[2] = new ImageIcon(icon.GetIcons.class.
getResource("pic3.gif")).getImage();
imgs[3] = new ImageIcon(icon.GetIcons.class.
getResource("pic4.gif")).getImage();
imgs[4] = new ImageIcon(icon.GetIcons.class.
getResource("pic5.gif")).getImage();
_icon = new WindowsTrayIcon(imgs[0], 16, 16, appName);
_icon.setToolTipText(appName);
TestMouseListener mouse = new TestMouseListener();
_icon.addMouseListener(mouse);
_icon.setPopup(makePopup());
_icon.setVisible(true);
WindowsTrayIcon.keepAlive();
// Show icon in loop
int idx = 0;
while (!_isStop) {
_icon.setImage(imgs[idx], 16, 16);
//icon.setToolTipText(tips[idx]);
idx = (idx + 1) % 5;
Thread.sleep(200);
}
}
catch (Exception ex) {
ex.printStackTrace();
}
return false;
} public TrayIconPopup makePopup() {
// Make new popup menu
TrayIconPopup popup = new TrayIconPopup();
// Add about, configure & exit item
TrayIconPopupSimpleItem item = new TrayIconPopupSimpleItem("消息中心");
item.addActionListener(new AboutListener());
popup.addMenuItem(item);
// Add configure item
item = new TrayIconPopupSimpleItem("消息设置");
item.addActionListener(new ConfigureListener());
popup.addMenuItem(item);
// Add a separator
TrayIconPopupSeparator sep = new TrayIconPopupSeparator();
popup.addMenuItem(sep);
// Add exit item
item = new TrayIconPopupSimpleItem("查看新消息");
item.addActionListener(new ExitListener());
popup.addMenuItem(item);
return popup;
} private class AboutListener
implements ActionListener {
public void actionPerformed(ActionEvent evt) {
// 直接进入任务箱的消息中心
try {
//第二次得到环境 执行JNI后,再次得到环境,这里错误,没有执行得到环境后的系列操作 直接跳到后面的语句
Context context = new InitialContext()
//得到环境后的系列操作;
}
catch (Exception ex) {
ex.printStackTrace();
} }
} // Callback listener handles about button
private class ConfigureListener
implements ActionListener { public void actionPerformed(ActionEvent evt) {
// 调用消息读取设置界面
}
} private class ExitListener
implements ActionListener { public void actionPerformed(ActionEvent evt) {
// WindowsTrayIcon.cleanUp();
// 显示新消息窗口
}
} private class TestMouseListener
extends MouseAdapter {
public void mousePressed(MouseEvent evt) {
if ( (evt.getModifiers() & MouseEvent.BUTTON1_MASK) != 0 &&
evt.getClickCount() == 2) {
// 显示新消息窗口
}
}
} private void stop(boolean flag) {
this._isStop = flag;
if (this._icon != null)
this._icon.setVisible(false);
} public void close() {
if (this._icon != null) {
this._icon.cleanUp();
this._icon = null;
}
}}
我反复尝试,错误信息,如下javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory. Root exception is java.lang.ClassNotFoundException: org/jnp/interfaces/NamingContextFactory
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:195)
at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:45)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:652)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:246)
at javax.naming.InitialContext.init(InitialContext.java:222)
at javax.naming.InitialContext.<init>(InitialContext.java:178)解决必有重谢
private static boolean _isStop = false;
public static WindowsTrayIcon _icon = null;
public static void main(String[] args) {
try {
//第一次得到环境 这里可以成功得到
Context context = new InitialContext()
//得到环境后的系列操作;
}
catch (Exception ex) {
ex.printStackTrace();
}
TrayToolKit toolKit = new TrayToolKit();
toolkit.showMessageTip("系统消息提示");
} public boolean showMessageTip(String appName) {
try {
stop(false);
Image imgs[] = new Image[5];
imgs[0] = new ImageIcon(icon.GetIcons.class.
getResource("pic1.gif")).getImage();
imgs[1] = new ImageIcon(icon.GetIcons.class.
getResource("pic2.gif")).getImage();
imgs[2] = new ImageIcon(icon.GetIcons.class.
getResource("pic3.gif")).getImage();
imgs[3] = new ImageIcon(icon.GetIcons.class.
getResource("pic4.gif")).getImage();
imgs[4] = new ImageIcon(icon.GetIcons.class.
getResource("pic5.gif")).getImage();
_icon = new WindowsTrayIcon(imgs[0], 16, 16, appName);
_icon.setToolTipText(appName);
TestMouseListener mouse = new TestMouseListener();
_icon.addMouseListener(mouse);
_icon.setPopup(makePopup());
_icon.setVisible(true);
WindowsTrayIcon.keepAlive();
// Show icon in loop
int idx = 0;
while (!_isStop) {
_icon.setImage(imgs[idx], 16, 16);
//icon.setToolTipText(tips[idx]);
idx = (idx + 1) % 5;
Thread.sleep(200);
}
}
catch (Exception ex) {
ex.printStackTrace();
}
return false;
} public TrayIconPopup makePopup() {
// Make new popup menu
TrayIconPopup popup = new TrayIconPopup();
// Add about, configure & exit item
TrayIconPopupSimpleItem item = new TrayIconPopupSimpleItem("消息中心");
item.addActionListener(new AboutListener());
popup.addMenuItem(item);
// Add configure item
item = new TrayIconPopupSimpleItem("消息设置");
item.addActionListener(new ConfigureListener());
popup.addMenuItem(item);
// Add a separator
TrayIconPopupSeparator sep = new TrayIconPopupSeparator();
popup.addMenuItem(sep);
// Add exit item
item = new TrayIconPopupSimpleItem("查看新消息");
item.addActionListener(new ExitListener());
popup.addMenuItem(item);
return popup;
} private class AboutListener
implements ActionListener {
public void actionPerformed(ActionEvent evt) {
// 直接进入任务箱的消息中心
try {
//第二次得到环境 执行JNI后,再次得到环境,这里错误,没有执行得到环境后的系列操作 直接跳到后面的语句
Context context = new InitialContext()
//得到环境后的系列操作;
}
catch (Exception ex) {
ex.printStackTrace();
} }
} // Callback listener handles about button
private class ConfigureListener
implements ActionListener { public void actionPerformed(ActionEvent evt) {
// 调用消息读取设置界面
}
} private class ExitListener
implements ActionListener { public void actionPerformed(ActionEvent evt) {
// WindowsTrayIcon.cleanUp();
// 显示新消息窗口
}
} private class TestMouseListener
extends MouseAdapter {
public void mousePressed(MouseEvent evt) {
if ( (evt.getModifiers() & MouseEvent.BUTTON1_MASK) != 0 &&
evt.getClickCount() == 2) {
// 显示新消息窗口
}
}
} private void stop(boolean flag) {
this._isStop = flag;
if (this._icon != null)
this._icon.setVisible(false);
} public void close() {
if (this._icon != null) {
this._icon.cleanUp();
this._icon = null;
}
}}
我反复尝试,错误信息,如下javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory. Root exception is java.lang.ClassNotFoundException: org/jnp/interfaces/NamingContextFactory
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:195)
at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:45)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:652)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:246)
at javax.naming.InitialContext.init(InitialContext.java:222)
at javax.naming.InitialContext.<init>(InitialContext.java:178)解决必有重谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货