java 改变窗体状态(最大化、最小化、正常)

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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值