В настоящее время я пытаюсь создать игру, которая разбивает кирпичи, но у меня возникло несколько проблем.
В настоящее время у меня есть абстрактная форма класса и методы для квадрата и круга для рисования фигур для игры.Однако в моем основном методе, когда я пытаюсь добавить фигуры, он выводит только одну фигуру, так что в этом случае для моего кода он отображает только круг, а не весло.Мне было интересно, может ли кто-нибудь помочь мне решить эту проблему?
Main
Строка, в которой я добавляю новый квадрат, в этом случае не работает.
import javax.swing.*;
import java.awt.*;
public class Main {
public static void main(String[] args) {
FilledFrame frame = new FilledFrame();
frame.setSize(700, 600);
frame.setResizable( false );
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.setTitle("CE203_RegNo_1603977");
frame.setVisible( true );
}
static class FilledFrame extends JFrame{
public FilledFrame(){
// left border
JPanel leftBorder = new JPanel();
leftBorder.setSize(4, 700);
leftBorder.setBackground(Color.BLACK);
add(leftBorder, BorderLayout.WEST);
// top border
JPanel topBorder = new JPanel();
topBorder.setSize(700, 4);
topBorder.setBackground(Color.BLACK);
add(topBorder, BorderLayout.NORTH);
//right border
JPanel rightBorder = new JPanel();
rightBorder.setSize(4, 700);
rightBorder.setBackground(Color.BLACK);
add(rightBorder, BorderLayout.EAST);
/*
JPanel cenBorder = new JPanel();
cenBorder.setSize(696, 696);
cenBorder.setBackground(Color.blue);
add(cenBorder, BorderLayout.CENTER);
*/
// create paddle
Square paddle = new Square(100, 8, 310, 550, Color.BLUE);
add(paddle, BorderLayout.SOUTH);
// create ball
Circle ball = new Circle(20, 20, 120, 350, Color.YELLOW);
add(ball, BorderLayout.CENTER);
}
}
}
Форма
import javax.swing.*;
import java.awt.*;
public abstract class Shape extends JPanel {
public int posX;
public int posY;
public Color color;
public Shape(int posX, int posY, Color color){
this.posX = posX;
this.posY = posY;
this.color = color;
}
public abstract void paintComponent (Graphics g);
}
Квадрат
import java.awt.*;
import java.awt.Color;
public class Square extends Shape {
protected int width;
protected int height;
public Square(int width, int height, int posX, int posY, Color color) {
super(posX, posY, color);
this.width = width;
this.height = height;
}
@Override
public void paintComponent (Graphics g) {
g.setColor(color);
g.fillRect(posX, posY, width, height);
}
}
Круг
import java.awt.*;
public class Circle extends Shape {
protected int width;
protected int height;
public Circle(int width, int height, int posX, int posY, Color color) {
super(posX, posY, color);
this.width = width;
this.height = height;
}
@Override
public void paintComponent(Graphics g) {
g.setColor(color);
g.fillOval(posX, posY, width, height);
}
}