该程序在jPanel上绘制两个输入大小的圆圈,一个在另一个上面。问题是,两个圆圈不居中。我该如何解决这个问题?
代码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
jPanel.Repaint();
try{
jLabel6.setText("");
int a=Integer.parseInt(jTextField1.getText());
Graphics2D gfx=(Graphics2D)jPanel1.getGraphics();
gfx.clearRect(0, 0, getWidth(), getHeight());
gfx.setColor(Color.red);
gfx.fillOval(100,50,a,a);
gfx.fillOval(100,50,a,a);
}catch(NumberFormatException e){
jLabel6.setText("Incorrect data");
}
}
结果:
答案 0 :(得分:3)
问题是,两个圆圈没有居中。
您必须了解x,y坐标如何在Swing自定义绘图中工作以定位组件。
尝试了解下面的屏幕截图。
在原始width / 2
中添加x
,以根据椭圆的宽度获取居中的x
坐标。
同样适用于身高。
示例代码:
int x = 50;
int y = 50;
int size = 100;
g.setColor(Color.red);
g.fillOval(x, y, size, size);
int center = x + size / 2;
size = 70;
g.setColor(Color.blue);
g.fillOval(center - size / 2, center - size / 2, size, size);
答案 1 :(得分:0)
解决:
我使用了gfx.fillOval(400-(a/2),50-(a/2),a,a);
,并调整了x,y坐标,以便在所需位置生成圆圈。