Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 图形绘制组件和循环故障_Java_Loops_Paintcomponent - Fatal编程技术网

Java 图形绘制组件和循环故障

Java 图形绘制组件和循环故障,java,loops,paintcomponent,Java,Loops,Paintcomponent,我似乎不明白为什么我的同心圆没有对齐。在我看来,我的回路是正确的,测量值也是正确的,但由于某些原因,最后几个圆圈偏离了中心。这是我的第一个问题。第二个问题是,我似乎无法在每个正方形上打印同心圆。再一次,我似乎在我的逻辑中找不到任何问题,但显然存在一个问题。在这方面有任何帮助都会很好 这应该是最终产品 *这是我的源代码-ExampleGUI.java* import javax.swing.*; public class ExampleGUI { public static void main

我似乎不明白为什么我的同心圆没有对齐。在我看来,我的回路是正确的,测量值也是正确的,但由于某些原因,最后几个圆圈偏离了中心。这是我的第一个问题。第二个问题是,我似乎无法在每个正方形上打印同心圆。再一次,我似乎在我的逻辑中找不到任何问题,但显然存在一个问题。在这方面有任何帮助都会很好

这应该是最终产品

*这是我的源代码-ExampleGUI.java*

import javax.swing.*;

public class ExampleGUI {
public static void main(String args []) {


    JFrame frame = new JFrame("Example Graphics");
    ExamplePanel panel = new ExamplePanel();

    frame.getContentPane().add(panel);
    frame.setDefaultCloseOperation(3);
    frame.pack();
    frame.setVisible(true);

}
}
import java.awt.*;

import javax.swing.*;



public class ExamplePanel extends JPanel{

public ExamplePanel() {
    setPreferredSize(new Dimension (600, 600));
}

public void paintComponent(Graphics g) {
    super.paintComponent(g);


    int x = 0;
    int x2 = 5;
    int y = 500;
    int y2 = 505;
    int w = 100;
    int w2 = 90;
    int h = 100;
    int h2 = 90;
    int i, j, k;

    for(j = 1; j < 7; j++) {
        x = 0;
        x2 = x + 5;

        for(i = 1; i < 7; i++) {
            if ((i + j) % 2 == 0) {
                g.setColor(Color.white);
            }  else {
                g.setColor(Color.yellow);
            }
            g.fillRect(x, y, w, h);
            g.setColor(Color.black);
            g.drawRect(x, y, w, h);
            g.setColor(Color.green);
            g.fillOval(x2, y2, w2, h2);

                for(k = 1; k < 7; k++) {
                    g.setColor(Color.black);
                    g.drawOval(x2, y2, w2, h2);
                    x2 = x2 + 5;
                    y2 = y2 + 5;
                    w2 = w2 - 10;
                    h2 = h2 - 10;
                }
            x = x + w;
            x2 = x2 + w2 + 10;

        }


        x = x + w;

        y = y - h;
        y2 = (y2 - h2) - 10;
    }

}
}
*ExamplePanel.java*

import javax.swing.*;

public class ExampleGUI {
public static void main(String args []) {


    JFrame frame = new JFrame("Example Graphics");
    ExamplePanel panel = new ExamplePanel();

    frame.getContentPane().add(panel);
    frame.setDefaultCloseOperation(3);
    frame.pack();
    frame.setVisible(true);

}
}
import java.awt.*;

import javax.swing.*;



public class ExamplePanel extends JPanel{

public ExamplePanel() {
    setPreferredSize(new Dimension (600, 600));
}

public void paintComponent(Graphics g) {
    super.paintComponent(g);


    int x = 0;
    int x2 = 5;
    int y = 500;
    int y2 = 505;
    int w = 100;
    int w2 = 90;
    int h = 100;
    int h2 = 90;
    int i, j, k;

    for(j = 1; j < 7; j++) {
        x = 0;
        x2 = x + 5;

        for(i = 1; i < 7; i++) {
            if ((i + j) % 2 == 0) {
                g.setColor(Color.white);
            }  else {
                g.setColor(Color.yellow);
            }
            g.fillRect(x, y, w, h);
            g.setColor(Color.black);
            g.drawRect(x, y, w, h);
            g.setColor(Color.green);
            g.fillOval(x2, y2, w2, h2);

                for(k = 1; k < 7; k++) {
                    g.setColor(Color.black);
                    g.drawOval(x2, y2, w2, h2);
                    x2 = x2 + 5;
                    y2 = y2 + 5;
                    w2 = w2 - 10;
                    h2 = h2 - 10;
                }
            x = x + w;
            x2 = x2 + w2 + 10;

        }


        x = x + w;

        y = y - h;
        y2 = (y2 - h2) - 10;
    }

}
}
import java.awt.*;
导入javax.swing.*;
公共类ExamplePanel扩展了JPanel{
公共示例面板(){
setPreferredSize(新尺寸(600600));
}
公共组件(图形g){
超级组件(g);
int x=0;
int x2=5;
int y=500;
int y2=505;
int w=100;
int w2=90;
int h=100;
int h2=90;
int i,j,k;
对于(j=1;j<7;j++){
x=0;
x2=x+5;
对于(i=1;i<7;i++){
如果((i+j)%2==0){
g、 setColor(Color.white);
}否则{
g、 setColor(颜色为黄色);
}
g、 fillRect(x,y,w,h);
g、 设置颜色(颜色为黑色);
g、 drawRect(x,y,w,h);
g、 setColor(Color.green);
g、 椭圆形(x2,y2,w2,h2);
对于(k=1;k<7;k++){
g、 设置颜色(颜色为黑色);
g、 牵引椭圆(x2,y2,w2,h2);
x2=x2+5;
y2=y2+5;
w2=w2-10;
h2=h2-10;
}
x=x+w;
x2=x2+w2+10;
}
x=x+w;
y=y-h;
y2=(y2-h2)-10;
}
}
}
*这就是我运行程序时的样子。由于某些原因,它看起来不像另一张图片*

import javax.swing.*;

public class ExampleGUI {
public static void main(String args []) {


    JFrame frame = new JFrame("Example Graphics");
    ExamplePanel panel = new ExamplePanel();

    frame.getContentPane().add(panel);
    frame.setDefaultCloseOperation(3);
    frame.pack();
    frame.setVisible(true);

}
}
import java.awt.*;

import javax.swing.*;



public class ExamplePanel extends JPanel{

public ExamplePanel() {
    setPreferredSize(new Dimension (600, 600));
}

public void paintComponent(Graphics g) {
    super.paintComponent(g);


    int x = 0;
    int x2 = 5;
    int y = 500;
    int y2 = 505;
    int w = 100;
    int w2 = 90;
    int h = 100;
    int h2 = 90;
    int i, j, k;

    for(j = 1; j < 7; j++) {
        x = 0;
        x2 = x + 5;

        for(i = 1; i < 7; i++) {
            if ((i + j) % 2 == 0) {
                g.setColor(Color.white);
            }  else {
                g.setColor(Color.yellow);
            }
            g.fillRect(x, y, w, h);
            g.setColor(Color.black);
            g.drawRect(x, y, w, h);
            g.setColor(Color.green);
            g.fillOval(x2, y2, w2, h2);

                for(k = 1; k < 7; k++) {
                    g.setColor(Color.black);
                    g.drawOval(x2, y2, w2, h2);
                    x2 = x2 + 5;
                    y2 = y2 + 5;
                    w2 = w2 - 10;
                    h2 = h2 - 10;
                }
            x = x + w;
            x2 = x2 + w2 + 10;

        }


        x = x + w;

        y = y - h;
        y2 = (y2 - h2) - 10;
    }

}
}

基本上,您的“螺旋”循环正在修改其他地方需要的变量的状态

我要做的是,创建一系列新的变量,初始化为当前状态,然后修改它们

                int ix = x2;
                int iy = y2;
                int ih = h2;
                int iw = w2;
                for (k = 1; k < 7; k++) {
                    g.setColor(Color.black);
                    g.drawOval(ix, iy, iw, ih);
                    ix = ix + 5;
                    iy = iy + 5;
                    iw = iw - 10;
                    ih = ih - 10;
                }
intix=x2;
int-iy=y2;
intih=h2;
int-iw=w2;
对于(k=1;k<7;k++){
g、 设置颜色(颜色为黑色);
g、 图纸(ix、iy、iw、ih);
ix=ix+5;
iy=iy+5;
iw=iw-10;
ih=ih-10;
}

我很想帮你,但我盯着这张图片看得入迷了。事实上,我不能从这张图上真正看出你在说什么。所以。。。你怎么回事啊?简单地说我的代码不起作用并不能帮助人们理解您的问题并提供帮助图像是我想要的样子,但我的代码看起来不是那样的-虽然非常接近。我发布了我的源代码,我对我的问题进行了完美的解释。您能告诉我们它看起来与预期的输出不符吗?简单地捕获您的结果并向我们展示,将为我们提供更好的图片。