博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java最小化窗体_JAVA窗体最大化最小化控制+托盘
阅读量:1532 次
发布时间:2019-04-21

本文共 3275 字,大约阅读时间需要 10 分钟。

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

}

}

}

转载地址:http://dekdy.baihongyu.com/

你可能感兴趣的文章
C++ 在屏幕上用星号打印菱形
查看>>
使用微信开发者工具添加小程序底部导航栏报错
查看>>
Android killer软件闪退的解决办法?
查看>>
eclipse中在类saolei.Test 中找不到main方法
查看>>
安卓车机没有ADB调试,任意安装第三方软件教程
查看>>
某小型校园网规划与设计要点(课程报告)
查看>>
前端页面通过web3.eth.accounts无法获取账户信息
查看>>
解决 invalid input detected at ‘^’ marker的问题
查看>>
用C语言实现津巴布韦这道算法题?
查看>>
有什么好一点的方法读jdk源码吗?
查看>>
javaScript学习笔记之比较运算符||逻辑运算符||条件运算符(三目运算符)
查看>>
java学习笔记之条件语句(if...else)
查看>>
javaScript学习笔记之break 和 continue 语句对比
查看>>
javaScript学习笔记之typeof, null, 和 undefined之间的对比
查看>>
JSP项目打开不通的查看详情页动画是放大状态的解决办法
查看>>
单点登陆的三种实现方式
查看>>
你也在你的应用上添加B站上的弹幕效果
查看>>
java实现网上招标系统
查看>>
java实现俄罗斯方块项目
查看>>
java实现即时通讯软件
查看>>