因此,我目前有一个透明的 JFrame,您可以单击它,但我需要它位于所有其他窗口的顶部。
假设您打开了一个浏览器,我希望 JFrame 保持在其之上,但能够捕获击键和鼠标点击。
这是我当前的代码。
public class TransparentWindow extends JFrame {
private static URL URI;
public TransparentWindow() {
initComponents();
}
@SuppressWarnings("unchecked")
private void initComponents() {
setExtendedState(Frame.MAXIMIZED_BOTH);
setIconImage(Toolkit.getDefaultToolkit().getImage(URI));
setResizable(false);
setUndecorated(true);
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
setAlwaysOnTop(true);
System.setProperty("sun.java2d.noddraw", "true");
WindowUtils.setWindowTransparent(this, true);
WindowUtils.setWindowAlpha(this, 0.6f);
addKeyListener(new KeyListener() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
});
}
public static void main(String[] args) {
try {
URI = new URL("http://i.imgur.com/xtZK0.png");
} catch (MalformedURLException e) {
e.printStackTrace();
}
new TransparentWindow().setVisible(true);
}
}
你可能需要做一个java进程而不是一个jframe,
jframe 在没有焦点时无法捕获击键,执行此类操作的唯一方法是每次失去焦点时将焦点交给 jframe,这意味着无法使用任何其他打开的窗口。
您可能需要更改语言。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)