Custom Cursor Icon Poza Oknem Aplikacji

0

Hej,

Jak w temacie. Szukam, szukam i znaleźć nie mogę żadnego sensownego rozwiązania. Czy jest możliwe w Javie przypisanie customowego kursora podczas działania aplikacji, ale zachowując jego (kursora) customową ikonę również, gdy "wyjadę" poza komponenty aplikacji? Nie rozważam na razie "szklanego" obiektu obejmującego cały ekran. Będę bardzo wdzięczny za odpowiedzi.

PS i tylko tak na marginesie - jak ugryźć temat dynamicznego zoom'a obszaru wokół kursora (np. 20x20p)? Czyli widzę to tak, że w JComponencie wyświetlany jest odświeżany powiedzmy co 50ms powiększony 'x' razy obraz z określonego obszaru wokół kursora. Interesuje mnie temat samego powiększania - współrzędne kursora, wyświetlanie i odświeżanie ogarniam.

Pozdrawiam!

0

Joł, wybaczcie, że piszę pod swoim postem, ale znalazłem rozwiązanie dla drugiego problemu - Zoom'a Wokół kursora. Tak to rozwiązałem:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import javax.swing.*;

class ZoomForMouse {

    public static void main(String[] args) throws AWTException {

        final Robot robot = new Robot();
        Runnable r = new Runnable() {

            @Override
            public void run() {

                final int size = 256;

                final BufferedImage bi = new BufferedImage(
                        size, size, BufferedImage.TYPE_INT_RGB);
                final JLabel gui = new JLabel(new ImageIcon(bi));

                ActionListener zoomListener = new ActionListener() {

                    @Override
                    public void actionPerformed(ActionEvent e) {

                        PointerInfo pi = MouseInfo.getPointerInfo();
                        Point p = pi.getLocation();

                        BufferedImage temp = robot.createScreenCapture(
                                new Rectangle(p.x-(size/30), p.y-(size/30), 
                                (size/15), (size/15)));

                        Graphics g = bi.getGraphics();
                        g.drawImage(temp, 0, 0, size, size, null);
                        g.dispose();

                        gui.repaint();
                    }
                };
                Timer t = new Timer(40, zoomListener);
                t.start();

                JOptionPane.showMessageDialog(null, gui);

                t.stop();
            }
        };
        SwingUtilities.invokeLater(r);
    }
}

Bez tytułu.jpg

Może się komuś kiedyś przyda. Pozdrawiam!

1 użytkowników online, w tym zalogowanych: 0, gości: 1