黑马程序员技术交流社区
标题:
边框有多少个像素
[打印本页]
作者:
张 涛
时间:
2012-10-15 21:39
标题:
边框有多少个像素
本帖最后由 张 涛 于 2012-10-15 21:56 编辑
代码:
<P>
public class Test extends Panel {</P>
<P> @Override
public void paint(Graphics g) {
g.fillOval(0, 0, 20, 20);
g.fillOval(100, 100, 20, 20);
g.fillOval(100, 0, 20, 20);
g.fillOval(0, 100, 20, 20);
g.fillOval(200-5-5-20, 200-30-5-20, 20, 20);
}</P>
<P> public static void main(String[]args){
Test p = new Test();
p.setSize(200, 200);
p.repaint();
Frame f = new Frame();
f.setSize(p.getWidth(), p.getHeight());
f.add(p,BorderLayout.CENTER);
f.setVisible(true);
}
}</P>
复制代码
结果如图。
我记得上边框是30像素;左右下边框都是5像素。
然后,代码:g.fillOval(200-5-5-20, 200-30-5-20, 20, 20);是在右下角画圆,应该是完整的圆,为什么都少一点呢?
要画出那个完整的圆,该怎么算呢?
aaa.png
(10.16 KB, 下载次数: 12)
下载附件
2012-10-15 21:37 上传
作者:
qhasilver
时间:
2012-10-15 21:51
本帖最后由 qhasilver 于 2012-10-15 21:56 编辑
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Panel;
public class Test extends Panel {
int w = Test.this.getSize().width;//获取本窗口宽度
int h = Test.this.getSize().height;//获取本窗口高度
public void paint(Graphics g) {
g.fillOval(0, 0, 20, 20);
g.fillOval(100, 100, 20, 20);
g.fillOval(100, 0, 20, 20);
g.fillOval(0, 100, 20, 20);
//g.fillOval(200 - 5 - 5 - 20, 200 - 30 - 5 - 20, 20, 20);
g.fillOval(w-20, h-20, 20, 20);//窗口宽度减去本圆直径等于画圆的起点
}
public static void main(String[] args) {
Test p = new Test();
p.setSize(200, 200);
p.repaint();
Frame f = new Frame();
f.setSize(p.getWidth(), p.getHeight());
f.add(p, BorderLayout.CENTER);
f.setVisible(true);
}
}
复制代码
获得本窗口大小之后即可算出画圆起点
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2