java在任务栏上添加图标和事件

class Window extends JFrame {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    private final int BUTTON_HEIGHT = 30;
    private final int WINDOW_WIDTH = 300;
    private final int WINDOW_HEIGHT = 60 + BUTTON_HEIGHT;
    private SystemTray st;
    private TrayIcon ti = null;
    private MenuItem startMenu = new MenuItem("Start");
    private MenuItem stopMenu = new MenuItem("Stop");
    private MenuItem exitMenu = new MenuItem("Exit");
    private MenuItem addByDate = new MenuItem("AddByDate");
    private PopupMenu pm;

    public MenuItem getStartMenu() {
        return startMenu;
    }

    public MenuItem getStopMenu() {
        return stopMenu;
    }

    public MenuItem getAddByDate() {
        return addByDate;
    }

    public Window(String title) {
        setTitle(title);
        init();
        addIoc();
    }

    private void addIoc() {
        if (SystemTray.isSupported()) {// 判断当前平台是否支持系统托盘
            st = SystemTray.getSystemTray();
            Image image = getImageByString("Stop.png"); // 定义托盘图标的图片
            createPopupMenu();
            ti = new TrayIcon(image, "更新数据-.xi", pm);
            ti.setImage(image);
            try {
                st.add(ti);
            } catch (AWTException ex) {
                ex.printStackTrace();
            }
        }
    }

    public Image getImageByString(String path) {
        return Toolkit.getDefaultToolkit().getImage(
                Window.class.getClassLoader().getResource(path));
    }

    public void createPopupMenu() {
        pm = new PopupMenu();
        MenuItem showInfo = new MenuItem("ShowInfo");
        startMenu.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                ti.setImage(getImageByString("Start.png"));
            }
        });
        stopMenu.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                ti.setImage(getImageByString("Stop.png"));

            }
        });
        exitMenu.addActionListener(new ActionListener() {
            
            public void actionPerformed(ActionEvent e) {
                int tag = JOptionPane.showConfirmDialog(null,
                        "是否退出?","提示",JOptionPane.YES_NO_OPTION);
                if (tag == JOptionPane.NO_OPTION){
                    
                }
                else if (tag == JOptionPane.YES_OPTION){
                    try {
                        PrintWriter pw=new PrintWriter(new FileOutputStream("log"+File.separator+"log.log", true));
                        pw.println(InfoWindows.getInfo());
                        pw.close();
                        System.exit(0);
                    } catch (FileNotFoundException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }
                }
            }
        });
        showInfo.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                InfoWindows.getWin().setVisible(true);

            }
        });

        pm.add(startMenu);

        pm.add(addByDate);
        pm.add(stopMenu);
        pm.add(showInfo);
        pm.addSeparator();
        pm.add(exitMenu);
    }

    private void init() {
        setLayout(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
        setVisible(false);
    }
}

好的,下面是用 Java 语言编写一个计算器任务栏托盘图标的示例代码: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class CalculatorTrayIcon { public static void main(String[] args) { // 创建计算器窗口并设置其属性 JFrame calculator = new JFrame("Calculator"); calculator.setSize(300, 400); calculator.setLocationRelativeTo(null); // 创建计算器界面组件并添加到窗口中 JPanel panel = new JPanel(new GridLayout(4, 4)); for (int i = 1; i <= 9; i++) { JButton button = new JButton(String.valueOf(i)); panel.add(button); } JButton button0 = new JButton("0"); panel.add(button0); JButton buttonAdd = new JButton("+"); panel.add(buttonAdd); JButton buttonSubtract = new JButton("-"); panel.add(buttonSubtract); JButton buttonMultiply = new JButton("*"); panel.add(buttonMultiply); JButton buttonDivide = new JButton("/"); panel.add(buttonDivide); JButton buttonEqual = new JButton("="); panel.add(buttonEqual); JButton buttonClear = new JButton("C"); panel.add(buttonClear); calculator.add(panel); // 创建系统托盘图标并设置其属性 if (SystemTray.isSupported()) { SystemTray tray = SystemTray.getSystemTray(); Image image = Toolkit.getDefaultToolkit().getImage("icon.png"); PopupMenu menu = new PopupMenu(); MenuItem exitItem = new MenuItem("Exit"); exitItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); menu.add(exitItem); TrayIcon trayIcon = new TrayIcon(image, "Calculator", menu); trayIcon.setImageAutoSize(true); tray.add(trayIcon); // 添加鼠标监听器,点击时显示或隐藏计算器窗口 trayIcon.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON1) { if (calculator.isVisible()) { calculator.setVisible(false); } else { calculator.setVisible(true); } } } }); } } } ``` 这个示例代码使用了 Java 的 Swing 组件来创建一个简单的计算器界面,并使用了 Java 的 SystemTray 类来创建一个系统托盘图标。当单击托盘图标时,会显示或隐藏计算器窗口。如果需要将这个示例代码编译运行,请将 `icon.png` 文件放在与 `CalculatorTrayIcon.java` 文件相同的目录下。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值