java 画连续矩形的时候 为什么前几个矩形会叠在一起

intxsize=10;for(intj=0;j<8;j++){g.drawRect((j*xsize),30,((j+1)*xsize),60);g.drawStrin... int xsize=10; for(int j=0;j<8;j++) { g.drawRect((j*xsize), 30, ( (j+1)*xsize ),60); g.drawString(""+j, (j*xsize)+2, 50); } 展开
 我来答
飞花岁月2007
2017-12-26 · TA获得超过377个赞
知道小有建树答主
回答量:505
采纳率:78%
帮助的人:337万
展开全部
因为在x坐标上的位移没有进行间隔
更多追问追答
追问
(j*xsize), 30, ( (j+1)*xsize ),60 
间隔了
追答
public class App {
public static void main(String[] args) {
JFrame jf = new JFrame();
MyPanel jp = new MyPanel();
jf.setBounds(200, 200, 500, 500);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.add(jp);
jf.setVisible(true);
}
}
/**
* 采用相对坐标法,先确定
* 第一个矩形坐标为(10,30)
* 则第二个坐标为 (50,30)
* 则第三个坐标为 (90,30)
* 则第四个坐标为 (120,30)
* 可以看出规律就是后一个矩形的X坐标总是前一个矩形X坐标加上40(即矩形宽度+两个矩形间隙)
*
*/
class MyPanel extends JPanel {
//举行宽
private int w=30;
//矩形高
private int h=80;
//第一个矩形X坐标
private int startX=10;
//第一个矩形Y坐标
private int startY=30;
//每个矩形相对间距(矩形宽+矩形间隙)
private int step=w+10;
@Override
public void paint(Graphics g) {
for(int i=0;i<8;i++){
//计算矩形相对X坐标
int x =startX+step*i;
//每个矩形x坐标是相对前一个矩形x坐标,y坐标不变
g.drawRect(x, startY, w,h);
g.drawString(String.valueOf(i), x+w/2, startY+h/2);
}
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式