このような質問をたくさん見つけましたが、まさにこの質問の答えが見つかりません。たとえば、透明な長方形を作成したいのですが、機能性ではなくデザインのためだけです。そのため、その境界線をクリックすると、長方形の境界線の下にある別のウィンドウにボタンが表示され、クリックされるボタンが表示されます。出来ますか?これは私のコードですが、意図したとおりに動作しません。
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. 矢印が指す場所をクリックすると、ブラウザの最初のタブに移動します。(私のプログラムも上にあります)