java图形绘制组件和循环故障
我似乎不明白为什么我的同心圆没有排成一行。在我看来,我的循环似乎是正确的,测量结果也是正确的,但由于某种原因,最后几圈偏离了中心。这是我遇到的第一个问题。第二个问题是,我似乎无法在每个正方形上打印同心圆。再一次,我似乎在我的逻辑中找不到任何问题,但显然存在一个问题。在这方面有任何帮助都会很好
这应该是最终产品
*这是我的源代码-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);
}
}
*示例面板。java*
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;
}
}
}
*这就是我运行程序时的样子。由于某种原因,它看起来不像另一张照片*
# 1 楼答案
基本上,您的“螺旋”循环正在修改其他地方需要的变量的状态
我要做的是,创建一系列新的变量,初始化为当前状态,然后修改它们