如何在java中绘制简单的眼睛

如何在java中绘制简单的眼睛,java,swing,2d,Java,Swing,2d,如何在Java的swing中绘制最简单的眼睛?我想得到这样的东西: 使用类方法: fillRect 圆角 以及类似的方法来完成您在JPanel上尝试的任务 例如: public class Eyes extends JPanel { // override paint @Override protected void paintComponent(Graphics g) { super(g); // use fillRect, fillOv

如何在Java的swing中绘制最简单的眼睛?我想得到这样的东西:

使用类方法:

  • fillRect
  • 圆角
以及类似的方法来完成您在JPanel上尝试的任务

例如:

public class Eyes extends JPanel
{
   // override paint
   @Override
   protected void paintComponent(Graphics g)
   {
       super(g);
       // use fillRect, fillOval and color methods
       // on "g" to draw what you want
   }
}
然后,当然,您将根据需要将Eyes对象放置在JInternalFrame、其他JPanel或容器中。

使用类方法:

  • fillRect
  • 圆角
以及类似的方法来完成您在JPanel上尝试的任务

例如:

public class Eyes extends JPanel
{
   // override paint
   @Override
   protected void paintComponent(Graphics g)
   {
       super(g);
       // use fillRect, fillOval and color methods
       // on "g" to draw what you want
   }
}

然后,当然,您将根据需要将Eyes对象放置在JInternalFrame、其他JPanel或容器中。

要用不同颜色的轮廓绘制填充圆,除了使用
填充椭圆
(在绘制轮廓之前,不要忘了更改
图形
上下文上的颜色)

您还应该研究这个类,它比常规的
Graphics
对象具有更多的功能。(您可以简单地将
图形
实例转换为
图形2D

特别是,要使圆看起来“漂亮”,可能需要设置抗锯齿渲染提示。您可以按如下方式执行此操作:

Graphics2D g2d = (Graphics2D)g;

// Turn anti-aliasing on.
g2d.setRenderingHint(
    RenderingHints.KEY_ANTIALIASING,
    RenderingHints.VALUE_ANTIALIAS_ON);

// Draw everything you want...

// Turn anti-aliasing off again.
g2d.setRenderingHint(
    RenderingHints.KEY_ANTIALIASING,
    RenderingHints.VALUE_ANTIALIAS_ON);

要使用不同颜色的轮廓绘制填充圆,除了使用
fillOval
(在绘制轮廓之前,不要忘记更改
图形
上下文中的颜色)之外,还可以使用
drawOval

您还应该研究这个类,它比常规的
Graphics
对象具有更多的功能。(您可以简单地将
图形
实例转换为
图形2D

特别是,要使圆看起来“漂亮”,可能需要设置抗锯齿渲染提示。您可以按如下方式执行此操作:

Graphics2D g2d = (Graphics2D)g;

// Turn anti-aliasing on.
g2d.setRenderingHint(
    RenderingHints.KEY_ANTIALIASING,
    RenderingHints.VALUE_ANTIALIAS_ON);

// Draw everything you want...

// Turn anti-aliasing off again.
g2d.setRenderingHint(
    RenderingHints.KEY_ANTIALIASING,
    RenderingHints.VALUE_ANTIALIAS_ON);

+1另外,“Swing程序应该重写
paintComponent()
,而不是重写paint()。@trashgood:谢谢。更改了代码示例以反映您的建议。+1另外,“Swing程序应该重写
paintComponent()
,而不是重写paint()。@trashgood:谢谢。更改了代码示例以反映您的建议。