Hinzufügen mehrerer Formen in eine GUI

stimmen
0

Im Versuch, derzeit ein Brick Breaker-Spiel zu schaffen aber ich ein paar Probleme erlebt.

Im Moment habe ich eine abstrakte Klasse Form und Methoden für Quadrat und Kreis, die Formen für das Spiel zu ziehen. Doch in meiner Haupt-Methode, wenn ich versuche, die Formen hinzufügt es gibt nur eine Form, so in diesem Fall für meinen Code nur den Kreis zeigt und nicht das Paddel. Ich frage mich, ob mir jemand dieses Problem lösen helfen könnte?

Main

Die Linie, wo im den neuen Platz Zugabe arbeitet in diesem Fall nicht.

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);
    }

}


}

Gestalten

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);

}

Quadrat

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);



}
}

Kreis

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);


}
}
Veröffentlicht am 27/11/2018 um 17:45
quelle vom benutzer
In anderen Sprachen...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more