基本Java骰子表示法

基本Java骰子表示法,java,dice,Java,Dice,我试图用给定的类(正方形、圆形和画布)在Java中表示骰子,我用正方形表示骰子框,但在表示n个圆形时,我制作了一个圆形矩阵,但它没有出现,这是我的骰子构造函数: public Dice(){ dice = new Rectangle(); Circle matrix[][] = new Circle[3][3]; matrix[0][0] = new Circle(); matrix[0][1] = null; matrix[0][2] = new C

我试图用给定的类(正方形、圆形和画布)在Java中表示骰子,我用正方形表示骰子框,但在表示n个圆形时,我制作了一个圆形矩阵,但它没有出现,这是我的骰子构造函数:

public Dice(){

    dice = new Rectangle();

    Circle matrix[][] = new Circle[3][3];
    matrix[0][0] = new Circle();
    matrix[0][1] = null;
    matrix[0][2] = new Circle();
    matrix[1][0] = new Circle();
    matrix[1][1] = new Circle();
    matrix[1][2] = new Circle();
    matrix[2][0] = new Circle();
    matrix[2][1] = null;
    matrix[2][2] = new Circle();

// Circle 
    diameter = 20;
    xPositionDot = 20;
    yPositionDot = 15;
    colorDot = "blue";
    isVisibleDot = false;

// Box
    height = 100;
    width = 100;
    colorBox = "red";
    xPosition = 70;
    yPosition = 15;
    isVisible = false;
}   

有没有关于我做错了什么的想法?

在我的最后一次骰子游戏中,我创建了一个类来绘制骰子面。我实例化了该类6次,通过调用draw方法绘制了6个面,并将这些面保存在图像数组中

package com.ggl.dice.game.view;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;

public class DieImage {

    /** Side of a die in pixels */
    private static final int    SIDE            = 64;

    private static final int    SPOT_DIAMETER   = 10;

    private Image               image;

    public DieImage() {
        image = new BufferedImage(SIDE, SIDE, 
                BufferedImage.TYPE_INT_RGB);
    }

    public Image draw(int count) {
        int w = image.getWidth(null);
        int h = image.getHeight(null);

        Graphics g = image.getGraphics();

        drawBorder(g, w, h);
        drawBackground(g, w, h);
        drawSpots(g, w, h, count);

        g.dispose();
        return image;
    }

    private void drawBorder(Graphics g, int w, int h) {
        g.setColor(Color.BLACK);
        g.fillRect(0, 0, w, h);
    }

    private void drawBackground(Graphics g, int w, int h) {
        g.setColor(Color.WHITE);
        g.fillRect(3, 3, w - 6, h - 6);
    }

    private void drawSpots(Graphics g, int w, int h, int count) {
        g.setColor(Color.BLACK);

        switch (count) {
        case 1:
            drawSpot(g, w / 2, h / 2);
            break;
        case 3:
            drawSpot(g, w / 2, h / 2);
            // Fall thru to next case
        case 2:
            drawSpot(g, w / 4, h / 4);
            drawSpot(g, 3 * w / 4, 3 * h / 4);
            break;
        case 5:
            drawSpot(g, w / 2, h / 2);
            // Fall thru to next case
        case 4:
            drawSpot(g, w / 4, h / 4);
            drawSpot(g, 3 * w / 4, 3 * h / 4);
            drawSpot(g, 3 * w / 4, h / 4);
            drawSpot(g, w / 4, 3 * h / 4);
            break;
        case 6:
            drawSpot(g, w / 4, h / 4);
            drawSpot(g, 3 * w / 4, 3 * h / 4);
            drawSpot(g, 3 * w / 4, h / 4);
            drawSpot(g, w / 4, 3 * h / 4);
            drawSpot(g, w / 4, h / 2);
            drawSpot(g, 3 * w / 4, h / 2);
            break;
        }
    }

    private void drawSpot(Graphics g, int x, int y) {
        g.fillOval(x - SPOT_DIAMETER / 2, y - SPOT_DIAMETER / 2, 
                SPOT_DIAMETER, SPOT_DIAMETER);
    }

} 

我不知道你想做什么,也不知道这段代码应该做什么。你的矩阵是一个局部变量。一旦建造师完成工作,它就会消失。如果你想让矩阵在对象的生命周期内保持不变,它必须被定义为一个字段。我假设他正试图用圆圈画一个骰子面。谢谢你,很抱歉打扰你,我从java开始,但你知道有没有其他方法来表示骰子面,只使用3个类:画布,矩形和圆形,我被告知使用3x3的圆形矩阵,但我不知道如何使它与矩形同时出现。@user3880826:矩形是模具面,尺寸为0,0,宽度,宽度。圆是模具表面上的一个点。画布是一个JPanel。通过重写paintComponent方法,可以在JPanel上绘制。实际的Canvas类已过时。