previous | start | next

## Deferred Image Loading

- Normally, programmer uses image for label:
  `JLabel label = new JLabel(new ImageIcon(imageName));`
- Use proxy instead:
  `JLabel label = new JLabel(new ImageProxy(imageName));`
- `paintIcon` loads image if not previously loaded
  `public void paintIcon(Component c, Graphics g, int x, int y)`
  `{`
  `if (image == null) image = new ImageIcon(name);`
  `image.paintIcon(c, g, x, y);`
  `}`

previous | start | next