www.javapolis.com
AlphaComposite: Example Code
Instance with rule:
Graphics 2D g2 = // ... Composite old = g2.getComposite(); Composite c = AlphaComposite.getInstance( AlphaComposite.SRC_OVER); g2.setComposite(c); // paint stuff… // restore previous state g2.setComposite(old);
www.javapolis.com
AlphaComposite: More Example Code
Instance with rule and opacity:
Graphics 2D g2 = // ... Composite old = g2.getComposite(); Composite c = AlphaComposite.getInstance( AlphaComposite.SRC_OVER, 0.5f); g2.setComposite(c); // paint stuff… // restore previous state g2.setComposite(old);
www.javapolis.com
AlphaComposite: Translucency via SrcOver
Draw translucent primitives into destination Semi-transparent logo:
private BufferedImage logoImage; protected void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g.create(); Composite c = AlphaComposite.getInstance( AlphaComposite.SRC_OVER, 0.5f); g2.setComposite(c); g2.drawImage(logoImage, 0, 0, null); }
www.javapolis.com
DEMO
Composites
Agenda
Gradients Composites Glass Pane Blur Shadow Animation Animated Transitions
www.javapolis.com
Glass Pane
www.javapolis.com
Glass Pane
Allows painting over the entire window area Easy to use
JFrame frame = new JFrame("Glass Pane"); frame.setGlassPane(new VeilGlassPane()); frame.setVisible(true); frame.getGlassPane().setVisible(true);
Glass pane is not visible by default Glass pane is a simple JComponent
Use non-opaque components
www.javapolis.com
Custom Glass Pane
class VeilGlassPane extends JComponent { @Override protected void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g.create(); g2.setColor(Color.WHITE); Composite c = AlphaComposite.getInstance( AlphaComposite.SRC_OVER, 0.5f); g2.setComposite(c); g2.fillRect(0, 0, getWidth(), getHeight()); g2.dispose(); } }
www.javapolis.com
上一页下一页