Как сделать полностью прозрачное окно с непрозрачной рамкой?

154
26 сентября 2019, 14:00

Мне нужен полный доступ к прозрачной части, т.е. чтобы там можно было нажимать мышкой и т.п. (как будто бы прозрачного окна и нет и оно не перекрывало доступ к видимой части экрана) С помощью какой технологии это можно сделать в Java? Прямо на экране рисовать рамку просто с помощью Graphics? Покажите пример кода.

Answer 1

Попробуйте Robot#createScreenCapture().

BufferedImage image = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
ImageIO.write(image, "png", new File("/screenshot.png"));
Answer 2

В общем не надо было ничего усложнять, в моём случае для выделения области просто рисуем рамку и считаем что это "окно".

 public static void main(String[] args) {
        Window w = new Window(null) {
            @Override
            public void paint(Graphics g) {
                g.setColor(Color.orange);
                g.drawRect(1400, 200, 50, 200);
            }
            @Override
            public void update(Graphics g) {
                paint(g);
            }
        };
        w.setAlwaysOnTop(true);
        w.setBounds(w.getGraphicsConfiguration().getBounds());
        w.setBackground(new Color(0, true));
        w.setVisible(true);
}
READ ALSO
Проблема с AdMob

Проблема с AdMob

Изменил подпись APK c Android debug на свою и перестал получать рекламу от AdMob(Ошибка 3)

183
Калькулятор на JS выдаёт NaN. Всего три действия

Калькулятор на JS выдаёт NaN. Всего три действия

Совсем нет опыта JSДелаю супер простой калькулятор

169
Может ли свойство объекта ссылаться на другое свойство этого объекта

Может ли свойство объекта ссылаться на другое свойство этого объекта

у меня вопрос к знатокам :) Я пытаюсь сделать динамически генерируемое "дерево решений"Данные которые нужны хранятся в глобальной переменной

172
Почему webpack выводит ошибки eslint несколько раз?

Почему webpack выводит ошибки eslint несколько раз?

Добавил в конфиге webpack, проверку esLint

180