Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Graphics2D ....

Posted on 2004-09-26
4
Medium Priority
?
201 Views
Last Modified: 2010-03-31
Hi Experts,
 
   I tried to make a moving circle, but I got  mistakes at line 00 & line 01 ? Does anyone know what I did wrong ? thanks.
 
//------------------------------------------
import java.lang.* ;
import javax.swing.*;
import javax.swing.event.* ;
import java.awt.* ;
import java.awt.event.* ;
import java.awt.image.BufferedImage;


public class MovingFigs extends JFrame{
    private MovingItem movingCircle, movingRec ;
    /** Creates a new instance of Main */
    public MovingFigs() {
       
       
         javax.swing.Timer circleTimer = new Timer(1000, movingCircle);
         circleTimer.start();
   
      setSize(400,400) ;
      show();
    }
   
    class MovingItem implements ActionListener {
       
          Graphics2D myCircle ;
          int x = 30, y = 30;
          final int DELTA_X =10;
       
          myCircle.setColor(Color.red) ;             // line 00
          myCircle.fillOval(30,30,60,60) ;           //  line 01
          public void actionPerformed(ActionEvent e) {
               x += DELTA_X;
               myCircle.fillOval(x, y, x+60, y);
          }
     }
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
    }
   
}
0
Comment
Question by:meow00
  • 3
4 Comments
 
LVL 86

Expert Comment

by:CEHJ
ID: 12154204
If you want to paint on your frame, you'll have to override its paint method:

import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;

public class MovingFigs extends JFrame {
      private MovingItem movingCircle, movingRec;
      int x = 30, y = 30;
      final int DELTA_X = 10;

      public MovingFigs() {
            javax.swing.Timer circleTimer = new Timer(500, new MovingItem());
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            circleTimer.start();
            setSize(400, 400);
            show();
      }

      class MovingItem implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                  // Cause the ball to move
                  repaint();
            }
      }


      public void paint(Graphics g) {
            Graphics2D g2d = (Graphics2D) g.create();
            g2d.clearRect(0, 0, getWidth(), getHeight());
            g2d.setPaint(Color.red);
            x += DELTA_X;
            g2d.fillOval(x, y, y, y);
            g2d.drawOval(x, y, y, y);
            g2d.dispose();
      }

      public static void main(String[] args) {
            new MovingFigs();
      }

}
0
 
LVL 1

Author Comment

by:meow00
ID: 12159406
err ..... in the :
-------------------
class MovingItem implements ActionListener {
          public void actionPerformed(ActionEvent e) {
               // Cause the ball to move
               repaint();
          }
     }
-------------------------
why does it call repaint() rather than paint ? thanks !
0
 
LVL 86

Accepted Solution

by:
CEHJ earned 1600 total points
ID: 12159448
Repaint makes the component paint itself again without worrying about passing the parameter (Graphics g)
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 12161999
8-)
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

An old method to applying the Singleton pattern in your Java code is to check if a static instance, defined in the same class that needs to be instantiated once and only once, is null and then create a new instance; otherwise, the pre-existing insta…
Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
Suggested Courses

972 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question