JAVA窗体最大化最小化控制+托盘
2011-06-29 18:54
211 查看
]import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Image; import java.awt.MenuItem; import java.awt.PopupMenu; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; public class MyFrame extends JFrame implements ActionListener { private static final long serialVersionUID = 1026416994451303162L; private static MyFrame mf = null; JButton jb1 = new JButton("最大化"); JButton jb2 = new JButton("最小化"); JButton jb3 = new JButton("正常"); public static MyFrame getInstance() { if (mf == null) mf = new MyFrame(); return mf; } public MyFrame() { super("改变窗体测试"); init(); systemTray(); } private void init() { this.add(jb1, BorderLayout.NORTH); this.add(jb2, BorderLayout.SOUTH); this.add(jb3, BorderLayout.CENTER); jb1.addActionListener(this); jb2.addActionListener(this); jb3.addActionListener(this); this.setSize(300, 120); Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); int h = (int) d.getHeight() / 4; int w = (int) d.getWidth() / 4; this.setLocation(w + 150, h + 100); this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { MyFrame.getInstance().setVisible(false); } }); this.setVisible(true); } public void actionPerformed(ActionEvent e) { String str = e.getActionCommand(); if (str.equals("最大化")) { this.setExtendedState(JFrame.MAXIMIZED_BOTH); } if (str.equals("最小化")) { this.setExtendedState(JFrame.ICONIFIED); System.out.println("最小化"); } if (str.equals("正常")) { this.setExtendedState(JFrame.NORMAL); } if(str.equals("m2")){ this.setExtendedState(JFrame.NORMAL); } } public void systemTray() { try { if (java.awt.SystemTray.isSupported()) {// 判断当前平台是否支持系统托盘 java.awt.SystemTray st = java.awt.SystemTray.getSystemTray(); Image image = Toolkit.getDefaultToolkit().getImage( getClass().getResource("0.gif"));// 定义托盘图标的图片 java.awt.TrayIcon ti = new java.awt.TrayIcon(image); ti.setToolTip("改变窗体测试"); PopupMenu p=new PopupMenu ("OK"); MenuItem m=new MenuItem("退出"); m.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { System.exit(0); } }); p.add(m); MenuItem m1=new MenuItem("打开"); m1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { MyFrame.getInstance().setVisible(true); MyFrame.getInstance().setExtendedState(JFrame.NORMAL); } }); p.add(m1); MenuItem m2=new MenuItem("最小化"); m2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { MyFrame.getInstance().setVisible(false); } }); p.add(m2); ti.setPopupMenu(p); // 为托盘添加右键菜单 st.add(ti); } } catch (Exception e) { } } public static void main(String[] args) { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); MyFrame.getInstance(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (UnsupportedLookAndFeelException e) { e.printStackTrace(); } } }
相关文章推荐
- JAVA窗体最大化最小化控制+托盘
- JAVA窗体最大化最小化控制+托盘
- 窗体最小化、最大化、系统托盘
- C#窗体的最大化/最小化/还原/最小化到托盘/NotifyIcon的代码实现
- java 改变窗体状态(最大化、最小化、正常)
- 子窗体控制父窗体最小化最大化
- JAVA窗体最大化、最小化、恢复状态及获得焦点
- C#窗体的最大化/最小化/还原/最小化到托盘/NotifyIcon的代码实现
- 我想点击窗体右上方的最小化图标,整个窗体最小化到系统托盘,不知在那里控制最小化的事件
- 用程序控制窗体最大化、最小化、还原
- C#窗体的最大化/最小化/还原/最小化到托盘/NotifyIcon的代码实现
- qq项目第一天(java JFrame 标题栏 最小化 最大化 拖动窗体)
- C#窗体的最大化/最小化/还原/最小化到托盘/NotifyIcon的代码实现
- C#WinForm窗体的最大化最小化及还原
- C#窗体最小化到右下角托盘的方法
- 为窗体添加 "最大化","最小化","还原"等 事件
- java-如何去掉JFrame上的最大化最小化和关闭按钮
- js弹出窗口、右下角浮动窗体(最小化最大化关闭)
- c# 窗体最小化到托盘
- .NET编程技术——实验06:窗体应用的最小化在Windows状态栏中显示托盘图标