2009-05-19 5 views
1

Wie könnte ich Grafikinformationen unter einer Komponente "lesen" (sagen wir als BufferedImage)?Swing: Wie lese ich Grafikinformationen unter einer Komponente?

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

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

Antwort

1

Frage: ist Ihre Komponente Top-Level (d. H. Möchten Sie wissen, was auf dem Desktop unter einem JFrame ist), oder möchten Sie nur wissen, über Komponenten, die unter der Komponente geschichtet sind?

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

Wenn 2), dann, wenn Sie einen Verweis auf die Komponente darunter haben, können Sie die Tatsache nutzen, dass paint(Graphics) ist egal, woher das Graphics Objekt kam. Sie können eine BufferedImage erstellen, rufen Sie createGraphics() (falls eine Graphics2D erwartet wird), und übergeben Sie das Ergebnis an die paint(Graphics) Methode der Komponente, die Sie erfassen möchten.
Beachten Sie, dass wenn die Komponente ein Container ist, wird es auch seine Kinder malen; Dies kann oder kann nicht sein, was Sie wollen.

+0

Ich brauche Nummer 2). Danke, ich werde das versuchen !!!! –

Verwandte Themen