java - Transparente, click-through, siempre en la parte superior JFrame
swing jna (1)
probablemente necesites hacer un proceso de Java más que un jframe,
jframe no puede captar el trazo clave cuando no se enfoca, la única forma de que hagas tal cosa es darle el foco a tu jframe cada vez que lo pierdas, lo que significa que no es posible el uso de ninguna otra ventana abierta. Probablemente necesites cambiar el lenguaje.
Por lo tanto, actualmente tengo un JFrame transparente al que puede hacer clic, pero lo necesito para estar al tanto de todas las demás ventanas.
Digamos que tiene un navegador abierto, quiero que JFrame se mantenga al tanto, pero que pueda capturar las teclas y los clics del mouse.
Aquí está mi código actual.
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);
}
}