JAVA窗体最大化最小化控制+托盘

来源:互联网 发布:三体结局知乎 编辑:程序博客网 时间:2024/06/05 22:52
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();}}}

0 0
原创粉丝点击