java中怎样实现一个窗体最小化在系统托盘,而不是占用一片任务栏的区域?
具体一点好不?我的要求是一个窗体,打开后就直接最小到系统托盘,即使在窗体显示的时候仍然不占用任务栏而只占用托盘区域,可以做到吗?...
具体一点好不?我的要求是一个窗体,打开后就直接最小到系统托盘,即使在窗体显示的时候仍然不占用任务栏而只占用托盘区域,可以做到吗?
展开
展开全部
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class NoticeIcon extends JFrame{
JMenuBar mbrMain;
JMenu mnuFile;
JMenuItem mnuFileExit;
MenuItem popShow,popExit;
PopupMenu popIcon;
SystemTray tray;
TrayIcon trayIcon;
public NoticeIcon(){
setSize(400,300);
setLocationRelativeTo(null);
mnuFileExit=new JMenuItem("退出");
mnuFile=new JMenu("文件");
mnuFile.add(mnuFileExit);
mbrMain=new JMenuBar();
mbrMain.add(mnuFile);
setJMenuBar(mbrMain);
mnuFileExit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
tray.remove(trayIcon);
dispose();
}
});
}
public static void main(String[] args){
final NoticeIcon noticeIcon=new NoticeIcon();
noticeIcon.popShow=new MenuItem("显示");
noticeIcon.popExit=new MenuItem("退出");
noticeIcon.popIcon=new PopupMenu();
noticeIcon.popIcon.add(noticeIcon.popShow);
noticeIcon.popIcon.addSeparator();
noticeIcon.popIcon.add(noticeIcon.popExit);
noticeIcon.popExit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
noticeIcon.tray.remove(noticeIcon.trayIcon);
System.exit(0);
}
});
noticeIcon.popShow.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
noticeIcon.setVisible(true);
}
});
noticeIcon.trayIcon=new TrayIcon(Toolkit.getDefaultToolkit().getImage("Save.gif"),"我的系统通知区图标",noticeIcon.popIcon);
noticeIcon.tray=SystemTray.getSystemTray();
try{
noticeIcon.tray.add(noticeIcon.trayIcon);
}
catch(AWTException ex){
System.out.println("系统托盘不可用");
}
}
}
import java.awt.*;
import java.awt.event.*;
public class NoticeIcon extends JFrame{
JMenuBar mbrMain;
JMenu mnuFile;
JMenuItem mnuFileExit;
MenuItem popShow,popExit;
PopupMenu popIcon;
SystemTray tray;
TrayIcon trayIcon;
public NoticeIcon(){
setSize(400,300);
setLocationRelativeTo(null);
mnuFileExit=new JMenuItem("退出");
mnuFile=new JMenu("文件");
mnuFile.add(mnuFileExit);
mbrMain=new JMenuBar();
mbrMain.add(mnuFile);
setJMenuBar(mbrMain);
mnuFileExit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
tray.remove(trayIcon);
dispose();
}
});
}
public static void main(String[] args){
final NoticeIcon noticeIcon=new NoticeIcon();
noticeIcon.popShow=new MenuItem("显示");
noticeIcon.popExit=new MenuItem("退出");
noticeIcon.popIcon=new PopupMenu();
noticeIcon.popIcon.add(noticeIcon.popShow);
noticeIcon.popIcon.addSeparator();
noticeIcon.popIcon.add(noticeIcon.popExit);
noticeIcon.popExit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
noticeIcon.tray.remove(noticeIcon.trayIcon);
System.exit(0);
}
});
noticeIcon.popShow.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
noticeIcon.setVisible(true);
}
});
noticeIcon.trayIcon=new TrayIcon(Toolkit.getDefaultToolkit().getImage("Save.gif"),"我的系统通知区图标",noticeIcon.popIcon);
noticeIcon.tray=SystemTray.getSystemTray();
try{
noticeIcon.tray.add(noticeIcon.trayIcon);
}
catch(AWTException ex){
System.out.println("系统托盘不可用");
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当然可以。
不过你的窗体可以继承 JDialog 不要继承JFrame
然后把窗口设为模态窗口,试一下。
其实我曾经写过一个继承JFrame的也能达到你要的那个效果,不过那种写法很少用,已经是三四年前的事情,我都不记得是怎么写的了。
大概思路:更改JFrame的窗口样式。
不过你的窗体可以继承 JDialog 不要继承JFrame
然后把窗口设为模态窗口,试一下。
其实我曾经写过一个继承JFrame的也能达到你要的那个效果,不过那种写法很少用,已经是三四年前的事情,我都不记得是怎么写的了。
大概思路:更改JFrame的窗口样式。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
jdk1.6应该可以做到的
SystemTray?类似这样一个名字的类
SystemTray?类似这样一个名字的类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
jdk1.6
java.awt.SystemTray
java.awt.SystemTray
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询