Frage

Wie kann ich "lesen" grafische Informationen unterhalb einer Komponente (Sagen wir mal wie BufferedImage )?

Ich möchte, dass die Komponente halbdurchlässig machen (bereits geschehen) und gelten grafische Effekte auf darunter liegende Material, wie Unschärfe alle Elemente unter dieser Komponente ( nicht aber die Komponente selbst ).

Mein Ansatz ist wahrscheinlich falsch:
Ich versuche, grafische Informationen aus Graphics2D Instanz, die ich gegeben zu bekommen in der Farbe (...) Methode, aber es ist leer, nicht wahr?

War es hilfreich?

Lösung

Frage: ist die Komponente der obersten Ebene (das heißt, tun Sie wissen wollen, was unter einem JFrame auf dem Desktop ist), oder möchten Sie nur über Komponenten kennen, die unterhalb der Komponente geschichtet sind

Wenn 1), dann ist es eine einfache Sache, einen Screenshot mit dem java.awt.Robot Methode createScreenCapture(Rectangle) ; die Rectangle sollten Ihre Fenstergrenzen in diesem Fall sein.

Wenn 2), dann, wenn Sie einen Verweis auf die Komponente unterhalb haben, können Sie sich die Tatsache zunutze machen, die a href <= "http://java.sun.com/javase/6/docs/api/java /awt/Component.html#paint(java.awt.Graphics)“rel = "nofollow noreferrer"> paint(Graphics) kümmert sich nicht darum, wo das Graphics Objekt herkommt. Sie können eine BufferedImage erstellen, rufen Sie createGraphics() (falls ein Graphics2D erwartet wird), und das Ergebnis an die paint(Graphics) Methode der Komponente übergeben, die Sie erfassen möchten.
Beachten Sie, dass, wenn die Komponente ein Behälter ist, ist es auch seine Kinder malen wird; Dies kann oder kann nicht sein, was Sie wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top