我用Graphics和Graphics2D,画的圆都比较粗糙,锯齿很明显啊,尤其食圆比较小的时候,我想问一下,是Java画的圆本来就粗糙还是需要什么技巧,怎么样才能画出比较好看的圆形。谢谢
解决方案 »
- junit4为什么一次性把所有方法执行光了?
- 看《java编程思想》过程中 一个疑问
- 请教关于toString()方法的问题
- 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数JAVA!
- 求: ORACLE9.0下,比较两个用户里面相同表的数据的工具
- JNI的问题
- 如何在文件中随机选取一行输入到另一个文件中?
- windows下的ldap服务端软件有那些?
- 怎么编写一个不规则的表格,请教代码高手!
- 有没有人做过下载并安装,完全自动,怎么做?
- swt list方法add问题
- 求<<数据结构与问题求解 java语言描述>>(Data Structure&Problem Solving Using Java)第四版weiss著,习题答案
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.Ellipse2D;import javax.swing.*; public class testpaint extends JFrame{
public static void main(String[] args) {
testpaint t=new testpaint();
t.setLocation(100, 100);
t.setSize(500, 400);
t.getContentPane().setBackground(Color.green);
t.setVisible(true);
}
public void paint(Graphics g){
super.paint(g);
Graphics2D g2 = (Graphics2D)g;
Ellipse2D e = new Ellipse2D.Double(10,50,70,70);
//加上下面这句就能变的圆滑了
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setPaint(Color.RED);
g2.draw(e);
//g2.fill(e);
}
}
Ellipse2D e = new Ellipse2D.Double(10,10,50,50);
g2.draw(e);
Ellipse2D e2 = new Ellipse2D.Double(12,12,46,46);
g2.fill(e2);
public Ellipse2D.Double()构造一个新 Ellipse2D,并将其初始化为:位置 (0, 0)、大小 (0, 0)。
--------------------------------------------------------------------------------Ellipse2D.Double
public Ellipse2D.Double(double x,
double y,
double w,
double h)根据指定坐标构造和初始化 Ellipse2D。 参数:
x, y - 边界矩形的坐标
w - 矩形的宽度
h - 矩形的高度
g2.draw(e);
Ellipse2D e2 = new Ellipse2D.Double(12.5,12.5,16,16);
g2.fill(e2);
import java.awt.*; Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.Ellipse2D;import javax.swing.*; public class testpaint extends JFrame{
public static void main(String[] args) {
testpaint t=new testpaint();
t.setLocation(100, 100);
t.setSize(500, 400);
t.getContentPane().setBackground(Color.green);
t.setVisible(true);
}
public void paint(Graphics g){
super.paint(g);
Graphics2D g2 = (Graphics2D)g;
Ellipse2D e = new Ellipse2D.Double(10,50,70,70);
//加上下面这句就能变的圆滑了
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setPaint(Color.RED);
g2.draw(e);
//g2.fill(e);
}
}