Download Understanding Repaint Cycle - Web Design and Development - Lecture Slides and more Slides Web Design and Development in PDF only on Docsity! Web Design & Development Lecture 19 Docsity.com Java Graphics 2 Docsity.com Last Example Code: MyPanel.java import javax.swing.*; import java.awt.*; public class MyPanel extends JPanel { public void paintComponent(Graphics g){ super.paintComponent(g); // erasing behaviour Graphics2D g2 = (Graphics2D)g; g2.drawRect(20,20,20,20); g2.setColor(Color.blue); g2.fillOval(50,50,20,20); g2.drawString("Hello World", 120, 50); } } Docsity.com Last Example Code: Test.java import javax.swing.*; import java.awt.*; public class Test{ JFrame f; MyPanel p; public Test1(){ f = new JFrame(); Container c = f.getContentPane(); c.setLayout(new BorderLayout()); p = new MyPanel(); c.add(p); f.setSize(400,400); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } // end constructor Docsity.com Last Example Code: Test.java public static void main(String args[ ]){ Test1 = new Test(); } } // end class Docsity.com • Yesterday we have shown you a tennis game. • Problem, How to code the paddle movement ? • We will do it using mouse. • Try it using Keys Docsity.com Coordinate System • Upside-down Cartesian • Ywindow = height - Ycartesian (0,0) (width,0) (0,height) (width, height) X-axis Y-axis Docsity.com Live Output Docsity.com Example Code: Test.java f.setSize(400,400); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Handler h = new Handler (); p.addMouseMotionListener(h); } // end constructor public class Handler extends MouseMotionAdapter{ public void mouseDragged(MouseEvent me){ p.mX = me.getX() ; p.mY = me.getY() ; p.repaint() ; } } Docsity.com Example Code: Test.java public static void main(String args[ ]){ Test t = new Test( ); } } // end class Docsity.com Example Code: MyPanel.java import javax.swing.*; import java.awt.*; public class MyPanel extends JPanel { int mX = 200; int mY = 0; public void paintComponent(Graphics g){ super.paintComponent(g); // erasing behaviour Graphics2D g2 = (Graphics2D)g; g2.setColor(Color.blue); g2.fillOval(mX, mY, 20, 20); } } // end class Docsity.com Example Code: AnimTest.java public void actionPerformed(ActionEvent ae){ if (f.getWidth()-40 == p.mX) x= -5; if (f.getHeight()-40 == p.mY) y= -3; if (p.mX == 0 ) x = 5; if (p.mY == 0 ) y=3; p.mX+=x; p.mY+=y; p.repaint() ; } Docsity.com Example Code: AnimTest.java public static void main(String args[ ]){ AnimTest at = new AnimTest( ); } } // end class Docsity.com Live Output Docsity.com