Η προσθήκη πολλαπλών σχημάτων σε ένα γραφικό περιβάλλον

ψήφοι
0

Im τη στιγμή προσπαθεί να δημιουργήσει ένα παιχνίδι διακόπτη τούβλο όμως βιώνω μερικά ζητήματα.

Έχω σήμερα μια αφηρημένη μορφή τάξης και οι μέθοδοι για την πλατεία και τον κύκλο να εξαχθούν τα σχήματα για το παιχνίδι. Ωστόσο, στην κύρια μέθοδος μου όταν προσπαθώ να προσθέσω τα σχήματα που εξάγει μόνο ένα σχήμα έτσι ώστε στην περίπτωση αυτή για τον κωδικό μου εμφανίζει μόνο τον κύκλο και όχι το κουπί. Αναρωτιόμουν αν κάποιος μπορούσε να με βοηθήσει να επιλύσετε αυτό;

Κύριος

Η γραμμή όπου im την προσθήκη του νέου πλατεία δεν λειτουργεί σε αυτή την περίπτωση.

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


}
}
Δημοσιεύθηκε 27/11/2018 στις 17:45
πηγή χρήστη
Σε άλλες γλώσσες...                            

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