[英]Make a Java application invisible to a user
我正在试图找到一种方法使Java应用程序对用户不可见。
基本上只是试图删除这个
< - 图像
如何才能做到这一点?
public class TransparentWindow extends JFrame {
public TransparentWindow() {
initComponents();
}
@SuppressWarnings("unchecked")
private void initComponents() {
setExtendedState(Frame.MAXIMIZED_BOTH);
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);
}
public static void main(String[] args) {
new TransparentWindow().setVisible(true);
}
}
我似乎已经找到了答案,只需把行setVisible(false);
在评论中你会看到实际的程序,UNCOMMENT看到没有留下痕迹的行,据我所知,Java程序正在某个地方运行,直到你不会手动将图标添加到系统托盘中。 此外,如何从任务管理器中删除您的应用程序,该问题仍然存在,但您可以删除所述图标,如您在问题中所指出的那样。
import javax.swing.*;
public class TransparentWindow extends JFrame
{
public TransparentWindow()
{
initComponents();
}
@SuppressWarnings("unchecked")
private void initComponents()
{
setExtendedState(JFrame.MAXIMIZED_BOTH);
setResizable(false);
setUndecorated(true);
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
setAlwaysOnTop(true);
setOpacity(0.8f);
setSize(200, 200);
//System.setProperty("sun.java2d.noddraw", "true");
//WindowUtils.setWindowTransparent(this, true);
//WindowUtils.setWindowAlpha(this, 0.6f);
setVisible(true);
setVisible(false);
JOptionPane.showMessageDialog(this, "It is working!", "Guess : ", JOptionPane.INFORMATION_MESSAGE);
}
public static void main(String[] args)
{
TransparentWindow tw = new TransparentWindow();
}
}
以下是运行此程序时桌面的快照,请参阅任务栏
从JWindow
扩展到JFrame
。 (我没有在Windows 7上对此进行测试,因为我现在没有坐在Windows机箱前面。它适用于XP并适用于Unity,这让我感到惊讶。)
据我所知,没有办法删除任务栏图标。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.