code_junkie

How can I successfully extend Graphics in Java

Nov 14th, 2011
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. import java.awt.*;
  2. import java.awt.image.*;
  3. import java.text.AttributedCharacterIterator;
  4. import javax.swing.*;
  5.  
  6. public class GraphicsTest {
  7.  
  8. public static void main(String[] args) {
  9. new GraphicsTest();
  10. }
  11.  
  12. public GraphicsTest () {
  13. JFrame frame = new JFrame();
  14. frame.getContentPane().add(new MyPanel());
  15. frame.setSize(500,500);
  16. frame.setVisible(true);
  17. try {
  18. Thread.sleep(2000);
  19. } catch (InterruptedException e) {}
  20. System.out.println("Using my graphics - expect to see 'MyGraphics' next");
  21. frame.paint(new MyGraphics());
  22.  
  23. }
  24.  
  25. class MyPanel extends JPanel {
  26. public void paint (Graphics g) {
  27. super.paint(g);
  28. System.out.println("Graphics is "+g);
  29.  
  30. g.fillRect(10, 10, 20, 20);
  31. }
  32. }
  33.  
  34. class MyGraphics extends Graphics {
  35.  
  36. public String toString () {
  37. return "MyGraphics";
  38. }
  39.  
  40. public Graphics create() {
  41. return this;
  42. }
  43.  
  44. // I've left out the huge list of abstract methods from the original script
  45. // since they're unchanged from the defaults and don't really matter here.
  46. }
  47.  
  48. RepaintManager.currentManager(frame).setDoubleBufferingEnabled(false);
  49. frame.paint(new MyGraphics());
  50. RepaintManager.currentManager(frame).setDoubleBufferingEnabled(true);
  51.  
  52. RepaintManager.currentManager(frame).setDoubleBufferingEnabled(false);
  53. frame.paint(new MyGraphics());
  54. RepaintManager.currentManager(frame).setDoubleBufferingEnabled(true);
  55.  
  56. RepaintManager.currentManager(frame).setDoubleBufferingEnabled(false);
  57. frame.paint(new MyGraphics());
  58. RepaintManager.currentManager(frame).setDoubleBufferingEnabled(true);
Add Comment
Please, Sign In to add comment