java - 如何创建带有红色边框的透明窗口?
问题描述
我正在尝试制作一个在按下键时记录屏幕的软件。为了表明程序现在正在录制,我想在屏幕外侧放置一个红色边框。我无法让它工作,这是我到目前为止的尝试:
public Main() {
JFrame frame = new JFrame("");
frame.setUndecorated(true);
frame.setAlwaysOnTop(true);
frame.setBackground(new Color(0, 0, 0, 0));
frame.setSize((int)ss.getWidth(), (int)ss.getHeight());
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.createBufferStrategy(3);
BufferStrategy bs = frame.getBufferStrategy();
Graphics2D g = (Graphics2D) bs.getDrawGraphics();
g.setColor(Color.RED);
g.drawRect(0, 0, frame.getWidth()-1, frame.getHeight()-1);
g.dispose();
bs.show();
}
似乎将背景设置为透明会使图形对象无法绘制到jframe上,而将图形对象的背景设置为透明只会留下带有红色边框的白色背景,而不是透明的。我现在完全坚持这个,所以任何帮助都将不胜感激!
解决方案
您不能真正以这种方式绘制组件,您需要覆盖paintComponent(g)
才能做到这一点。
您可以简单地添加一个边框对象:
((JComponent) frame.getContentPane()).setBorder(new LineBorder(Color.RED, 10));
推荐阅读
- azure - azure Blob MD5 checksum and local MD5 checksum not matching
- postgresql - Solr Dataimport 来自 PostgreSQL 的嵌套实体
- html - 从带有编码的文件夹中打开随机pdf文件(使用HTML主代码)
- c++ - 指向具有移动语义的成员函数的指针
- python - 正确构建和执行 .apk 文件
- python - 如何观察 Python 中的属性查找链?
- python - Python 不考虑字符串中的字符“c”
- regex - Confluent.net 中的模式匹配
- mysql - Spring Boot - JPA Repository @Query 用于不匹配的实体字段类型
- python - 如何修改此示例以将日期条目额外解析为元组,例如 (6, 11, 2007)?