Var*_*run 3 java mouse events transparency
我的问题与如何将鼠标事件传递给我在C#/ Vista中的应用程序中的要求完全相同?,但我对透明Java UI也需要相同的东西.我可以使用6.0轻松创建透明的Java UI,但无法获得有关通过应用程序将事件传递给后面的任何应用程序(例如浏览器)的任何信息.
我相信这会回答你的问题.要运行它,您需要Java 6更新10及更高版本.我在Windows Vista上测试过它
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ClickThrough {
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame f = new JFrame("Test");
f.setAlwaysOnTop(true);
Component c = new JPanel() {
@Override
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)g.create();
g2.setColor(Color.gray);
int w = getWidth();
int h = getHeight();
g2.fillRect(0, 0, w,h);
g2.setComposite(AlphaComposite.Clear);
g2.fillRect(w/4, h/4, w-2*(w/4), h-2*(h/4));
}
};
c.setPreferredSize(new Dimension(300, 300));
f.getContentPane().add(c);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
com.sun.awt.AWTUtilities.setWindowOpaque(f,false);
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,您需要具有未修饰的窗口或仅由Java装饰的窗口(不是默认的OS装饰),否则代码将无法工作.
| 归档时间: |
|
| 查看次数: |
3885 次 |
| 最近记录: |