Java: создание переходов по окнам (включая текст / изображения)

Я хочу создать оверлей в Java, которыйtransparent, always on topи что я могуclick-through, Я нашел несколькоаналогичный сообщений об этой проблеме, но даже после того, как я следую их ответам, у меня есть одна проблема.

Моя проблема в том, чтобы сделатьwhole window Пролистать. У меня нет проблем с тем, чтобы он работал с JFrame, но как только яadd any components к нему (JLabel или ImagePanel),click-through attribute doesn't carry over им.

Поскольку я хочу иметь фоновое изображение для своего приложения, это в основном делает мой код бесполезным, видя, как окно фокусируется всякий раз, когда я щелкаю область, которую покрывает текст / изображение.

Прежде чем я покажу код, который я использую, я сначала хотел бы сослаться наэти потоки который по сути описывает именно то, что я хочу, за исключением C #.

Моя цель - создать оверлей с прозрачным .png-изображением и текстом сверху, который будет меняться при ключевых событиях. Если он использует JFrame или любую другую библиотеку, это не имеет значения. Мне нужно только это совместимо с Windows.

Я также хотел бы упомянуть, что у меня есть некоторый опыт работы с Java, но я новичок в использовании 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);
    }
}

Обратите внимание, что проблема заключается вnot about the window being focused (хотя это является результатом проблемы), но оJLabel and ImagePanel not being click-through.

Ответы на вопрос(3)

Ваш ответ на вопрос