黑马程序员技术交流社区

标题: 边框有多少个像素 [打印本页]

作者: 张 涛    时间: 2012-10-15 21:39
标题: 边框有多少个像素
本帖最后由 张 涛 于 2012-10-15 21:56 编辑

代码:

  1. <P>
  2. public class Test extends Panel {</P>
  3. <P> @Override
  4. public void paint(Graphics g) {
  5.   g.fillOval(0, 0, 20, 20);
  6.   g.fillOval(100, 100, 20, 20);
  7.   g.fillOval(100, 0, 20, 20);
  8.   g.fillOval(0, 100, 20, 20);
  9.   g.fillOval(200-5-5-20, 200-30-5-20, 20, 20);
  10. }</P>
  11. <P> public static void main(String[]args){
  12.   
  13.   Test p = new Test();
  14.   p.setSize(200, 200);
  15.   p.repaint();
  16.   
  17.         Frame f = new Frame();
  18.         f.setSize(p.getWidth(), p.getHeight());
  19.         f.add(p,BorderLayout.CENTER);
  20.         f.setVisible(true);
  21.     }

  22. }</P>
复制代码
结果如图。

我记得上边框是30像素;左右下边框都是5像素。
然后,代码:g.fillOval(200-5-5-20, 200-30-5-20, 20, 20);是在右下角画圆,应该是完整的圆,为什么都少一点呢?

要画出那个完整的圆,该怎么算呢?


aaa.png (10.16 KB, 下载次数: 12)

aaa.png

作者: qhasilver    时间: 2012-10-15 21:51
本帖最后由 qhasilver 于 2012-10-15 21:56 编辑
  1. import java.awt.BorderLayout;
  2. import java.awt.Frame;
  3. import java.awt.Graphics;
  4. import java.awt.Panel;

  5. public class Test extends Panel {
  6.                 int w = Test.this.getSize().width;//获取本窗口宽度
  7.                 int h = Test.this.getSize().height;//获取本窗口高度
  8.         public void paint(Graphics g) {        
  9.                 g.fillOval(0, 0, 20, 20);
  10.                 g.fillOval(100, 100, 20, 20);
  11.                 g.fillOval(100, 0, 20, 20);
  12.                 g.fillOval(0, 100, 20, 20);
  13.                 //g.fillOval(200 - 5 - 5 - 20, 200 - 30 - 5 - 20, 20, 20);               
  14.                 g.fillOval(w-20, h-20, 20, 20);//窗口宽度减去本圆直径等于画圆的起点
  15.         }

  16.         public static void main(String[] args) {

  17.                 Test p = new Test();
  18.                 p.setSize(200, 200);
  19.                 p.repaint();

  20.                 Frame f = new Frame();
  21.                 f.setSize(p.getWidth(), p.getHeight());
  22.                 f.add(p, BorderLayout.CENTER);
  23.                 f.setVisible(true);
  24.         }

  25. }
复制代码
获得本窗口大小之后即可算出画圆起点




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2