Java: Wykonywanie kliknięć przez okno (w tym tekst / obrazy)

Chcę utworzyć nakładkę w Javieprzezroczysty, Zawsze na górzei to mogękliknij. Znalazłem kilkapodobny posty o tym problemie, ale nawet po ich odpowiedziach mam jeden problem.

Moim problemem jest zrobieniecałe okno kliknij. Nie mam żadnego problemu, aby działał z JFrame, ale razdodaj dowolne składniki do niego (JLabel lub ImagePanel),atrybut click-through nie przenosi się do nich.

Ponieważ chcę mieć obraz tła dla mojej aplikacji, to zasadniczo sprawia, że ​​kod jest bezużyteczny, widząc, jak okno skupia się za każdym razem, gdy klikam obszar, który obejmuje tekst / obraz.

Zanim pokażę kod, którego używam, najpierw chciałbym się odwołaćte wątki co dokładnie opisuje dokładnie to, czego chcę, z wyjątkiem C #.

Moim celem jest stworzenie nakładki z przezroczystym obrazem .png i tekstem na wierzchu, który zmieni się na kluczowych wydarzeniach. Jeśli używa JFrame lub innej biblioteki, nie ma znaczenia. Potrzebuję go tylko z systemem Windows.

Chciałbym również wspomnieć, że mam pewne doświadczenie z Javą, ale jestem nowicjuszem w używaniu JFrame.

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;

import com.sun.jna.platform.WindowUtils;


public class Overlay {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Overlay Window");
        frame.setUndecorated(true);
        frame.setAlwaysOnTop(true);
        frame.getRootPane().putClientProperty("apple.awt.draggableWindowBackground", false);
        frame.setLocation(400, 400);
        frame.getContentPane().setLayout(new java.awt.BorderLayout());

        JLabel textLabel = new JLabel("I'm a label in the window", SwingConstants.CENTER);
        frame.getContentPane().add(textLabel, BorderLayout.CENTER); 
        frame.pack();

        System.setProperty("sun.java2d.noddraw", "true");
        WindowUtils.setWindowTransparent(frame, true);
        WindowUtils.setWindowAlpha(frame, 1.0f);

        //Using AWTUtilities gives the same result as WindowUtils
        //AWTUtilities.setWindowOpaque(frame, false);
        //AWTUtilities.setWindowOpacity(frame, 1.0f);

        frame.setVisible(true);
    }
}

Zauważ, że problem jestnie o tym, że okno jest skupione (choć jest to wynikiem problemu), ale oJLabel i ImagePanel nie są klikalne.

questionAnswers(3)

yourAnswerToTheQuestion