Domanda

Come potrei "leggere" le informazioni grafiche sotto un componente (Diciamo come BufferedImage )?

Voglio fare quel componente mezza traslucido (già fatto) e applicare effetti grafici su roba di base, come ad esempio sfocatura tutto elementi sotto tale componente ( ma non il componente stesso ).

Il mio approccio è probabile sbagliato:
Cerco di ottenere informazioni grafiche da esempio Graphics2D dato a me nel vernice (...) metodo, ma è vuota, giusto?

È stato utile?

Soluzione

Domanda: è il tuo top-livello di componente (vale a dire, vuoi sapere che cosa c'è sul desktop sotto un JFrame), o vuoi solo sapere su componenti che sono stratificati sotto la componente

Se 1), allora si tratta di una semplice questione di catturare uno screenshot con il metodo java.awt.Robot createScreenCapture(Rectangle) ; il Rectangle dovrebbe essere tuoi limiti della finestra, in questo caso.

Se 2), quindi se avete un riferimento al componente sotto, si può fare uso del fatto che paint(Graphics) non importa dove l'oggetto Graphics venuto. È possibile creare un BufferedImage, chiamata createGraphics() (nel caso in cui si prevede un Graphics2D), e passare il risultato al metodo paint(Graphics) del componente che si desidera catturare.
Si noti che se il componente è un contenitore, sarà dipingere i suoi figli anche; questo può o non può essere quello che vuoi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top