Здравствуйте! Как лучше дописать код?

Есть код:

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.Random;
import javax.swing.JPanel;
import javax.swing.Timer;

public class New extends JPanel {
        GeneralPath shape;
 
    private AffineTransform transformers;
    

 
                Random r = new Random();
        
                final double y = r.nextInt(100);
                final double x = r.nextInt(100);
                
 
                double x1 = x+100;
                double y1 = y+100;
                
                double q = x+100;
                double w = y+100;
                

                
    public New() {
       // setSize(new Dimension(400, 400));//устанавливаю размер
        GeneralPath path = new GeneralPath();
                
                path.append(new Ellipse2D.Double(q++, w++, 10, 10),true);//для точки посередине
                path.append(new Line2D.Double(x1+100, y1+100, x1-100, y1-100), false);//для вращающегося отрезка
                
                Timer tm = new Timer(100, new ActionListener() {
                    int i = 0;
                    int u = 0;
            @Override
            public void actionPerformed(ActionEvent e) {
                            
                transformers = AffineTransform.getRotateInstance(i++ * 0.09, x1, y1);//для вращения отрезка в определенную сторону
                
               
               
               //void move()
                repaint();
            }
                        
        });
                tm.start();
                shape=path;
    }
        
public void move(){
            q += q;
            w += w;
            }
 
    @Override
    protected void paintComponent(Graphics g) {
 
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        Graphics2D g3 = (Graphics2D) g;
              
            g2.transform(transformers);
            Color newColor = new Color(139, 0, 0);
            g.setColor(newColor);           
            BasicStroke pen = new BasicStroke(1);
            g2.setStroke(pen);
            g2.draw(shape);
            
            
    }
    
}

И:

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

public class JavaApplication15 {

  /**
     * @param args the command line arguments
     */
    public static void main(final String[] args) {
        JFrame fr = new JFrame("Программа");
        JPanel pan = new New();
        fr.setPreferredSize(new Dimension(400, 400));
        fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JScrollPane sp = new JScrollPane(pan);
        fr.add(sp);
        fr.pack();
        fr.setVisible(true);
 
    }
}

Нужно сделать так, чтобы точка, которая на отрезке, двигалась по этому самому отрезку из 1 конца в другой, как это сделать? Пересмотрев кучу информации, у меня так и не получилось сдвинуть ее с места на прямой


Ответы (0 шт):