Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4575542
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 21, 20262026-05-21T20:04:43+00:00 2026-05-21T20:04:43+00:00

I have animation that is an image moving from right to left, which is

  • 0

I have animation that is an image moving from right to left, which is one cycle. I would like to know how to do if i have to start several cycle, if i want to have several images moving right to left one after the other. At the moment i compute one cycle and update a x value my component and the image is drawn at 0 + this x value. If i have to handle several cycles how can i keep track of each of this x values for each of the image i have to draw ?
Thank you.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-21T20:04:44+00:00Added an answer on May 21, 2026 at 8:04 pm

    for Example (by Darryl)

    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.GridLayout;
    import java.awt.Point;
    import java.awt.Polygon;
    import java.awt.RenderingHints;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.ArrayList;
    import java.util.Random;
    import javax.swing.AbstractAction;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.SwingUtilities;
    import javax.swing.Timer;
    
    public class AnimationBackground {
    
        public AnimationBackground() {
            Random random = new Random();
            JFrame frame = new JFrame("Animation Background");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setResizable(false);
            final MyJPanel panel = new MyJPanel();
            panel.setBackground(Color.BLACK);
            for (int i = 0; i < 50; i++) {
                Star star = new Star(new Point(random.nextInt(490), random.nextInt(490)));
                star.setColor(new Color(100 + random.nextInt(155), 100 + random.nextInt(155), 100 + random.nextInt(155)));
                star.setxIncr(-3 + random.nextInt(7));
                star.setyIncr(-3 + random.nextInt(7));
                panel.add(star);
            }
            panel.setLayout(new GridLayout(10, 1));
            JLabel label = new JLabel("This is a Starry background.", JLabel.CENTER);
            label.setForeground(Color.WHITE);
            panel.add(label);
            JPanel stopPanel = new JPanel();
            stopPanel.setOpaque(false);
            stopPanel.add(new JButton(new AbstractAction("Stop this madness!!") {
    
                private static final long serialVersionUID = 1L;
    
                @Override
                public void actionPerformed(ActionEvent e) {
                    panel.stopAnimation();
                }
            }));
            panel.add(stopPanel);
            JPanel startPanel = new JPanel();
            startPanel.setOpaque(false);
            startPanel.add(new JButton(new AbstractAction("Start moving...") {
    
                private static final long serialVersionUID = 1L;
    
                @Override
                public void actionPerformed(ActionEvent e) {
                    panel.startAnimation();
                }
            }));
            panel.add(startPanel);
            frame.add(panel);
            frame.pack();
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }
    
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
    
                @Override
                public void run() {
                    AnimationBackground animationBackground = new AnimationBackground();
                }
            });
        }
    
        class Star extends Polygon {
    
            private static final long serialVersionUID = 1L;
            private Point location = null;
            private Color color = Color.YELLOW;
            private int xIncr, yIncr;
            static final int WIDTH = 500, HEIGHT = 500;
    
            Star(Point location) {
                int x = location.x;
                int y = location.y;
                this.location = location;
                this.addPoint(x, y + 8);
                this.addPoint(x + 8, y + 8);
                this.addPoint(x + 11, y);
                this.addPoint(x + 14, y + 8);
                this.addPoint(x + 22, y + 8);
                this.addPoint(x + 17, y + 12);
                this.addPoint(x + 21, y + 20);
                this.addPoint(x + 11, y + 14);
                this.addPoint(x + 3, y + 20);
                this.addPoint(x + 6, y + 12);
            }
    
            public void setColor(Color color) {
                this.color = color;
            }
    
            public void move() {
                if (location.x < 0 || location.x > WIDTH) {
                    xIncr = -xIncr;
                }
                if (location.y < 0 || location.y > WIDTH) {
                    yIncr = -yIncr;
                }
                translate(xIncr, yIncr);
                location.setLocation(location.x + xIncr, location.y + yIncr);
            }
    
            public void setxIncr(int xIncr) {
                this.xIncr = xIncr;
            }
    
            public void setyIncr(int yIncr) {
                this.yIncr = yIncr;
            }
    
            public Color getColor() {
                return color;
            }
        }
    
        class MyJPanel extends JPanel {
    
            private static final long serialVersionUID = 1L;
            private ArrayList<Star> stars = new ArrayList<Star>();
            private Timer timer = new Timer(20, new ActionListener() {
    
                @Override
                public void actionPerformed(ActionEvent e) {
                    for (Star star : stars) {
                        star.move();
                    }
                    repaint();
                }
            });
    
            public void stopAnimation() {
                if (timer.isRunning()) {
                    timer.stop();
                }
            }
    
            public void startAnimation() {
                if (!timer.isRunning()) {
                    timer.start();
                }
            }
    
            @Override
            public void addNotify() {
                super.addNotify();
                timer.start();
            }
    
            @Override
            public void removeNotify() {
                super.removeNotify();
                timer.stop();
            }
    
            MyJPanel() {
                this.setPreferredSize(new Dimension(512, 512));
            }
    
            public void add(Star star) {
                stars.add(star);
            }
    
            @Override
            public void paintComponent(Graphics g) {
                super.paintComponent(g);
                ((Graphics2D) g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
                for (Star star : stars) {
                    g.setColor(star.getColor());
                    g.fillPolygon(star);
                }
            }
        }}
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have this simple animation that moves an image from one point to another:
I have successfully done one side animation using Translate Animation means the image goes
I have an animation that slides in an image when the user clicks chat
I have a BG image animation that relies on the hover callback to revert
I have some animation I would like to try, kind of a shopping cart/checkout
I have an app with multiple animations that are simple, just an image moving
We know that UIImageView has a very nice support for image sequence animation. We
So I have an animation that is being created by having a bunch of
I have created a jQuery animation that can be seen by clicking the Preview
I have what I thought was a relatively easy Ajax/animation that I'm adding to

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.