-
主要使用了Timer和TimerTask来实现,每45分钟提示一次,点击relax触发电脑锁屏,点击dont是关闭弹窗不影响程序运行,不管他的话60s后自动关闭弹窗。打完jar包后,使用exe4j来转exe,名称图标可自定义。下面是效果图和完整的代码(带详细注释),可以根据自己喜好修改:
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
//设置一个漂漂的边框
JFrame.setDefaultLookAndFeelDecorated(true);
//创建窗口
final JFrame frame = new JFrame();
//窗口位置
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
int x = dim.width - frame.getSize().width-300;
int y = dim.height - frame.getSize().height - 110;
frame.setLocation(x, y);
frame.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); // 设置x的模式
frame.setVisible(true); //窗口可见
//创建面板
JPanel panel = new JPanel();
panel.setVisible(true);
panel.setBackground(new Color(238, 169, 184)); //设置面板的背景色,由参数bg指定颜色
//创建JLabel操作文本或图像
JLabel label = new JLabel("休息下,喝点水!");
Font font = new Font("汉仪小隶书简", Font.BOLD, 15); //文本格式
//将文本放入JLabel,JLabel放入面板
label.setFont(font);
panel.add(label);
//创建休息按钮
JButton okButton = new JButton("Relax");
Font buttonFont = new Font("华文新魏", Font.BOLD, 12);
okButton.setBackground(new Color(99,184,255));
okButton.setFont(buttonFont);
okButton.setPreferredSize(new Dimension(70, 18));
//点它能干啥
okButton.addActionListener(e -> {
try {
Runtime.getRuntime().exec("rundll32.exe user32.dll,LockWorkStation"); //锁屏
} catch (Exception var3) {
var3.printStackTrace();
}
});
//创建继续干的按钮
JButton workButton = new JButton("Don't");
workButton.setBackground(new Color(232,232,232));
workButton.setFont(buttonFont);
workButton.setPreferredSize(new Dimension(70, 18));
workButton.addActionListener(e -> {
try {
//点击按钮关闭窗口
frame.dispose();
} catch (Exception var3) {
var3.printStackTrace();
}
});
//往里塞
panel.add(okButton);
panel.add(workButton);
frame.add(panel);
frame.pack();
//放最后才能正确居中
frame.setLocationRelativeTo(null);
//弹窗出现一分钟自动关闭
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
frame.dispose();
}
}, 1000*60);
}
}, 0L, 1000*60*45L); //45分钟一个循环
}
如果有需要将程序设置开机自启动的话,可以看下前面发的那篇。