gpt4 book ai didi

java - 在 Windows 中,如何以编程方式使我的整个屏幕黑白闪烁?

转载 作者:行者123 更新时间:2023-12-04 12:32:20 25 4
gpt4 key购买 nike

我正在使用一个简单的番茄钟计时器,但我没有声音/扬声器,所以我想通过简单地用指定颜色使屏幕空白,然后用另一种颜色切换几次来表示计时器结束.好像我让我的显示器成为左转汽车信号。我如何控制这样的显示器?是否有一些 win32 代码?

我熟悉 Java,更不熟悉 C# 或 C++

enter image description here

最佳答案

我不确定控制整个屏幕的动机是什么。也许更合适的做法是在系统托盘中显示通知。

无论如何,使用 Java 您可以在全屏模式下弹出一个 JFrame。使用计时器更改其背景几次,然后将其关闭。这是一个演示类似内容的简化示例:

import java.awt.Color;
import java.awt.EventQueue;
import java.awt.GraphicsEnvironment;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;

import javax.swing.AbstractAction;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.KeyStroke;
import javax.swing.Timer;

class FullScreenFrame extends JFrame{
private static final int MAX_COUNT = 3;
private static final int PERIOD = 1000;
private JPanel panel;
private int count;

public FullScreenFrame(){
super();

setUndecorated(true);

getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false), "ESCAPE");
getRootPane().getActionMap().put("ESCAPE", new AbstractAction() {
public void actionPerformed(ActionEvent e) {
dispose();
}
});

panel = new JPanel();
panel.setBackground(Color.GREEN);
add(panel);

new Timer(PERIOD, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (count < MAX_COUNT) {
if (count % 2 == 0){
panel.setBackground(Color.BLACK);
} else {
panel.setBackground(Color.GREEN);
}
count++;

} else {
((Timer) e.getSource()).stop();
dispose();
}
}

}).start();
}

public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
FullScreenFrame frame = new FullScreenFrame();
frame.setBounds(GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration().getBounds());
frame.setAlwaysOnTop(true);
frame.setVisible(true);
}
});
}
}

关于java - 在 Windows 中,如何以编程方式使我的整个屏幕黑白闪烁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10255668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com