有没有办法加上一句;按钮“;使用Java访问Windows通知区域

有没有办法加上一句;按钮“;使用Java访问Windows通知区域,java,windows,notifications,Java,Windows,Notifications,我制作了一个小的训练提醒应用程序,在每小时的最顶端提醒我做一些训练——有没有办法在上面添加一些按钮,比如“我做了”/“我跳过了”之类的?源代码如下,但可能与当前问题无关: import java.awt.*; 导入java.time.LocalDateTime; 导入java.time.format.DateTimeFormatter; 导入java.util.Random; 公开课健身教练{ 静态最终管柱训练[]={ “俯卧撑”、“卷曲”、“蹲下”、“仰卧起坐”、“仰卧起坐”、“跪锤按压”、

我制作了一个小的训练提醒应用程序,在每小时的最顶端提醒我做一些训练——有没有办法在上面添加一些按钮,比如“我做了”/“我跳过了”之类的?源代码如下,但可能与当前问题无关:

import java.awt.*;
导入java.time.LocalDateTime;
导入java.time.format.DateTimeFormatter;
导入java.util.Random;
公开课健身教练{
静态最终管柱训练[]={
“俯卧撑”、“卷曲”、“蹲下”、“仰卧起坐”、“仰卧起坐”、“跪锤按压”、“反向俯卧撑”,
“Ab辊”
};
静态最终int reps[]={
10,14,15,17,20
};
publicstaticvoidmain(字符串args[])抛出AWTException、interruptedeexception{
if(SystemTray.issuported()){
修井机器人wr=新修井机器人();
wr.displayReminder();
}
否则{

System.out.println(“在windows plz上运行此脚本我不知道您是否可以直接在Java中执行此操作(也许您可以,我只是不知道),但是您可以从Java调用一个powershell脚本来执行此操作


有关创建这些脚本的详细信息:

我认为旧版systray通知不支持按钮。但Windows 10上的按钮当然支持。您可以使用-就像selbie提到的-Powershell和
ProcessBuilder
您是指Windows 10操作中心吗?也许您可以看看以下内容:
import java.awt.*;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Random;

public class WorkoutReminder {
    static final String workouts[] = {
    "Pushups", "Curls", "Squats", "Crunches", "Lat raise", "Kneeling hammer Press",             "Reverse pushups",
     "Ab roller"
};
    static final int reps[] = {
            10,14,15,17,20
    };
    public static void main(String args[])throws AWTException, InterruptedException{
        if(SystemTray.isSupported()) {
            WorkoutReminder wr = new WorkoutReminder();
            wr.displayReminder();
        }
        else{
            System.out.println("Run this on windows plz <3");
        }
    }

    private static void displayReminder() throws AWTException, InterruptedException{
        while (true) {
            DateTimeFormatter dtfm = DateTimeFormatter.ofPattern("mm");
            DateTimeFormatter dtfh = DateTimeFormatter.ofPattern("HH");
            LocalDateTime currentTime = LocalDateTime.now();
            String min = dtfm.format(currentTime);
            int hour = Integer.parseInt(dtfh.format(currentTime));
            System.out.print(min);
            if(min.equals("00") && ( hour >=9 && hour <= 21)) {
                Random rand = new Random();
                String workout = workouts[Math.abs(rand.nextInt() % workouts.length)];
                int rep = reps[Math.abs(rand.nextInt() % reps.length)];

                SystemTray st = SystemTray.getSystemTray();
                Image logo = Toolkit.getDefaultToolkit().createImage("image.png");
                TrayIcon trayIcon = new TrayIcon(logo, "Workout you fat slob");
                trayIcon.setImageAutoSize(true);
                String iconText = "Workout reminder";
                String workoutText = "Let's get it: " + workout + " for " + rep + " reps\n";
                System.out.print("  --" + workoutText);
                trayIcon.setToolTip("YEEEET");
                st.add(trayIcon);
                trayIcon.displayMessage(workoutText, iconText, TrayIcon.MessageType.INFO);
                Thread.sleep(60000);
            }
            else{
                System.out.print(" - " + (60-Integer.parseInt(min)) + " minutes left\n");
                Thread.sleep(60000);
            }
        }
    }
}