【发布时间】:2018-04-01 03:00:29
【问题描述】:
所以我必须在 java.swing 中创建一个靶心目标。 起初我尝试对每个单独的圆圈进行硬编码,但问题是圆圈不会居中。所以我希望有一种更简单的方法使用循环而不是在每个循环中进行硬编码。这是我尝试硬编码时的代码:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JPanel;
public class TargetPanel extends JPanel {
public TargetPanel() {
this.setPreferredSize(new Dimension(800,800));
}//end constructor
public void paintComponent(Graphics g) {
Color blue = new Color(0, 100, 0);
Color yellow = new Color(100, 0, 0);
super.paintComponent(g);
int dimension = 800;
int partition = 75;
drawCirlce(g, Color.WHITE, Color.BLACK, dimension);
}//end draw circle
private void drawCirlce(Graphics g, Color blue, Color yellow, int dimension) {
g.setColor(Color.WHITE);
g.fillOval((getHeight()/2) - (dimension/2), (getWidth()/2)-(dimension/2), dimension, dimension);
g.setColor(Color.BLACK);
g.drawOval((getHeight()/2) - (dimension/2), (getWidth()/2)-(dimension/2), dimension, dimension);
g.setColor(Color.WHITE);
g.fillOval((getHeight()/2) - (dimension/2), (getWidth()/2)-(dimension/2), dimension-25, dimension-25);
g.setColor(Color.BLACK);
g.drawOval((getHeight()/2) - (dimension/2), (getWidth()/2)-(dimension/2), dimension-25, dimension-25);
}//end drawCircle
}//end main
如您所见,这创建了一个较小的圆圈,但并没有完全形成靶心目标模式。 我再次认为它可以以更简单的方式完成,我只是不确定如何去做。并认为制作一个循环会更容易。也许有人可以为我指明正确的方向。
【问题讨论】:
-
不要像那样创建蓝色和黄色。只需使用 Color.BLUE 和 color.YELLOW。还有,你的黄色真的很红。
-
颜色只是我完成目标时的占位符。我不太担心颜色,因为我正在为靶心目标找到正确的图案
-
抱歉,我无法抗拒:也许你的圈子不想居中,因为你拼写了 circle。
标签: java