Solved

a moving object in a layeredPane

Posted on 2004-09-28
3
279 Views
Last Modified: 2011-10-03
Hi experts,

   I tried to put a moving object in a layeredPane which is in a Frame. It works fine if i add it to the code directly, but it doesn't work if i put it in a layeredPane first. Does anyone know what I did wrong ???

   please help ! many thanks.
--------------------------------
//  MovingFigs.java

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 implements ActionListener{
    private JLayeredPane layeredPane;
    private JPanel myPanel ;

    /** Creates a new instance of Main */
    public MovingFigs() {
        layeredPane = new JLayeredPane();
        layeredPane.setPreferredSize(new Dimension(300, 310));
   
         MovingCircle myCircle = new MovingCircle() ;
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
          layeredPane.add( myCircle, new Integer(0)) ;
            getContentPane().setLayout(null) ;
            getContentPane().add(layeredPane) ;
          setSize(800, 600);
          show();

    }
   
   
    //-----------
    public void actionPerformed(ActionEvent e){}
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
         MovingFigs meow = new MovingFigs() ;
      //   meow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         meow.setVisible(true);
    }    
}

//---------------------------
// MovingCircle.java

import java.lang.* ;
import javax.swing.*;
import javax.swing.event.* ;
import java.awt.* ;
import java.awt.event.* ;
import java.awt.image.BufferedImage;

public class MovingCircle extends JPanel implements ActionListener{
    private int x = 30, y = 30 ;
    private final int DELTA_X = 10 ;
    /** Creates a new instance of Class */
    public MovingCircle() {
        javax.swing.Timer circleTimer = new Timer(250, this);
        circleTimer.start();}
    public void actionPerformed(ActionEvent e){ repaint() ;}
 //--------------------
    public void paintComponent(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();  
     } // paintComponent
} // MovingCircle

0
Comment
Question by:meow00
  • 2
3 Comments
 
LVL 92

Expert Comment

by:objects
ID: 12175085
you aren't using any layout managers so you need to set the size and position of all components expicitly.
0
 
LVL 1

Author Comment

by:meow00
ID: 12176369
  Hi objects & experts,

     Now I set the size and position for all components, but it still doesn't work ..... did i miss anything ???  please help ! many many thanks !!!

          layeredPane.add( myCircle, new Integer(0)) ;
          layeredPane.setSize(20,20) ;
          layeredPane.setLocation(30,30) ;
           
            getContentPane().setSize(100,100) ;
            getContentPane().setLocation(50,50) ;
            getContentPane().add(layeredPane) ;
           
0
 
LVL 92

Accepted Solution

by:
objects earned 450 total points
ID: 12176407
have you set the size and position of myCircle?
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone 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

Suggested Solutions

Title # Comments Views Activity
how to add new optional parameter to JSP 1 49
Crystal Reports Licensing Questions 4 37
Java program running SQL query 5 38
Tagging and Merging on Branch 1 30
Introduction Java can be integrated with native programs using an interface called JNI(Java Native Interface). Native programs are programs which can directly run on the processor. JNI is simply a naming and calling convention so that the JVM (Java…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Viewers learn about the “while” loop and how to utilize it correctly in Java. Additionally, viewers begin exploring how to include conditional statements within a while loop and avoid an endless loop. Define While Loop: Basic Example: Explanatio…
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.

830 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