我发现了很多这样的问题,但没有找到这个问题的答案。例如,我想制作一个透明的矩形,它只是为了设计而不是为了功能。所以我想要当我点击它的边框并且我在矩形边框下的另一个窗口中有一个按钮 - 要点击的按钮。可能吗?这是我的代码,但它没有按预期工作。
public class ClickThroughWindow {
public static final int RECT_SIZE = 80;
public static void main(String[] args) {
TestPanel panel = new TestPanel();
panel.setPreferredSize(new Dimension(RECT_SIZE, RECT_SIZE));
panel.setOpaque(false);
JFrame frame = new JFrame("Crossfire");
// Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
// frame.setLocation(dim.width / 2 - frame.getSize().width / 2 -
// RECT_SIZE
// / 2, dim.height / 2 - frame.getSize().height / 2 - RECT_SIZE
// / 2);
frame.setUndecorated(true);
frame.setBackground(new Color(0, 0, 0, 0));
frame.add(panel);
frame.setAlwaysOnTop(true);
frame.pack();
frame.setVisible(true);
}
}
public class TestPanel extends JPanel {
private static final long serialVersionUID = 2446519137290816513L;
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g.create();
g2d.setColor(getBackground());
g2d.setStroke(new BasicStroke(40));
g2d.setColor(Color.BLACK);
g2d.drawRect(0, 0, getWidth() - 1, getHeight() - 1);
g2d.dispose();
}
}
这是一个例子:postimg.org/image/t4gzczzc3。单击箭头指向的位置时,我想转到浏览器的第一个选项卡。(甚至我的程序都在上面)