Я не могу получить 2 объекта для отображения на экране в JFrame - PullRequest
0 голосов
/ 23 марта 2019

Я пытаюсь отобразить на экране 2 объекта с помощью JFrame и пытаюсь переместить их. Я получил 1 объект, чтобы появиться на экране, а затем попытался установить 2 из них, но я просто не могу заставить его работать

Это мой главный

package animate;

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

public class Main {
    public static void main(String[] args){
        //Square s = new Square(50, 100, 2);
        //Square s2 = new Square(300, 50, 1);
        JFrame frame = new JFrame();
        JPanel panel = new JPanel();

        frame.setSize(700, 350);

        panel.setLayout(new FlowLayout());
        panel.add(new Square(50, 100, 2));
        panel.add(new Square(300, 50, 1));

        frame.add(panel);
        frame.setResizable(false);
        frame.setTitle("hi");
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        frame.pack();
        frame.setVisible(true);
    }
}

Это мой квадратный класс (Предполагается нарисовать квадрат, но я сейчас использую круг для тестирования)

package animate;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
import javax.swing.*;

public class Square extends JPanel implements ActionListener {
    Timer t = new Timer(5, this);
    double x, y, vel;

    public Square(int x, int y, int vel){
        this.x = x;
        this.y = y;
        this.vel = vel;
    }
    @Override
    public void paintComponent(Graphics g){
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;

        Ellipse2D circ = new Ellipse2D.Double(this.x, this.y, 40, 40);
        g2.fill(circ);
        t.start();
    }
    public void actionPerformed(ActionEvent e){
        x += 0;
        y += 0;
        repaint();
    }
    @Override
    public Dimension getPreferredDimension(){
        return new Dimension(100, 540);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...