您的位置:首页 > 编程语言 > Java开发

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();
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: