Java 我怎样画一个矩形,中间有一个圆圈?

Java 我怎样画一个矩形,中间有一个圆圈?,java,graphics,geometry,awt,graphics2d,Java,Graphics,Geometry,Awt,Graphics2d,嗨,我需要画一个图像,我只希望它的一部分是可见的(圆形),我首先计划画一个图像(占据整个JFrame),然后用黑色矩形覆盖它,然后在中心画一个完全透明的圆,但它不起作用,因为你只能看到我在图像上画的黑色矩形。我的第二种方法是画一个黑色矩形,中间有一个圆圈,这样只能看到图像的一部分。我该怎么做?还有别的办法吗?谢谢 //the transparent approach int mat[][] = {{0, 0, 0}, {0, 1, 0}, {0, 0, 0}; for (int r = 0;

嗨,我需要画一个图像,我只希望它的一部分是可见的(圆形),我首先计划画一个图像(占据整个JFrame),然后用黑色矩形覆盖它,然后在中心画一个完全透明的圆,但它不起作用,因为你只能看到我在图像上画的黑色矩形。我的第二种方法是画一个黑色矩形,中间有一个圆圈,这样只能看到图像的一部分。我该怎么做?还有别的办法吗?谢谢

//the transparent approach
int mat[][] = {{0, 0, 0}, {0, 1, 0}, {0, 0, 0};

for (int r = 0; r < mat.length; r++) {
    for (int c = 0; c < mat[r].length; c++) {
        if (mat[r][c] == 0) g2d.setPaint(Color.RED)
        else if (mat[r][c] == 1) g2d.setPaint(Color.BLACK)
        g2d.fillRect(r * 10, c * 10, 10, 10);
    }
}
g2d.setPaint(Color.DARK_GRAY);
g2d.fillRect(0, 0, panel.getWidth(), panel.getHeight());

g2d.setPaint(new Color(0f, 0f, 0f, .100f));
g2d.fillOval(0, 0, 100, 100);
//透明方法
int mat[][]={{0,0,0},{0,1,0},{0,0,0};
对于(int r=0;r
类似

class Rect extends JComponent {
    public void paint(Graphics g) {
        g.setColor(Color.BLACK);
        g.drawRect (100, 100, 500, 500);     
        g.setColor(Color.WHITE);
        g.fillOval(150, 150, 250, 250);
}
差不多

class Rect extends JComponent {
    public void paint(Graphics g) {
        g.setColor(Color.BLACK);
        g.drawRect (100, 100, 500, 500);     
        g.setColor(Color.WHITE);
        g.fillOval(150, 150, 250, 250);
}

如果你想画一个黑色的长方形,你可以尝试这样做:


Graphics2D g2d=(Graphics2D)g;
面积a=新面积(新矩形(50,50,100,100));
a、 减去(新面积(新椭圆2d.Double(75,75,50,50));
g2d.填充(a);

如果你想画一个带圆圈的黑色矩形,你可以尝试这样做:


Graphics2D g2d=(Graphics2D)g;
面积a=新面积(新矩形(50,50,100,100));
a、 减去(新面积(新椭圆2d.Double(75,75,50,50));
g2d.填充(a);

你在画什么图像?你能提供一些代码吗?它不是一个真正的图像,它是一个带有一些数字的矩阵,我根据数字画了一个带有颜色的矩形。我会提供代码。你在画什么图像?你能提供一些代码吗?它不是一个真正的图像,它是一个带有一些数字的矩阵,我画了一个带有数字的矩形根据数字选择颜色。我将提供代码。非常感谢,我不知道Ellipse2D类。非常感谢,我不知道Ellipse2D类。这是我的方法,如果颜色是透明的,它将只显示你在图像上绘制的黑色矩形。这是我的方法,如果颜色是透明的,它将只显示黑色您在图像上绘制的矩形。