当前位置: 首页 > 知识库问答 >
问题:

如何创建供paintComponent使用的自定义图形类?

支华池
2023-03-14
public void paintComponent(Graphics g) {
  super.paintComponent(g);
  Graphics2D g2 = (Graphics2D) g;

  // Create shapes here which combine to form
  // a larger object...
  g2.add(a circle...);
  g2.add(a rectangle...);
  g2.add(other shapes...);
}
public void paintComponent(Graphics g) {
  super.paintComponent(g);
  Graphics2D g2 = (Graphics2D) g;

  // Intantiate robust graphics object from external class.
  g2.add(graphicsObject);
}

所以我最终只是按顺序添加项目,一个游戏板的表层,上面的瓷砖,然后放置在瓷砖中的游戏令牌。

智慧的话语和优秀的链接是最受欢迎的。提前谢了。

共有1个答案

李法
2023-03-14

一种绘画方法只用于绘画。它应该绘制类的属性。在这种情况下,属性将是您要绘制的形状。因此,类需要一个方法来指定要绘制的形状。您不想创建绘画方法中的形状。

您想:

>

  • 创建ArrayList以保存要绘制的形状。

    然后,在PaintComponent()方法中,您只需遍历列表并绘制每个形状。

    基本代码如下所示:

    // Create List containing Shapes to be painted
    
    List<Shape> shapes = new ArrayList<Shape>();
    shapes.add( circle ):
    shapes.add( rectangle );
    
    // The custom painting code might look like:
    
    protected void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D)g.create();
    
        for (Shape info : shapes)
        {
            g2d.fill( info.getShape() );
        }
    
        g2d.dispose();
    }
    

    因此,类还可能有一个AddShape(...)方法来更新形状列表。

  •  类似资料:
    • 在上一节,我们创建了一个新的名为 gitrepo 的自定义资源类型并告诉 Puppet 此类型需要携带两个参数,分别为 source 和 path。 然而到目前为止,我们还没有告诉 Puppet 如何检出仓库,即如何创建这种类型的具体实例。 这正是提供者(provider)的用武之地。 正如我们之前看到的,一个类型经常会有几种可能的提供者。在本例中, 对一个 Git 仓库进行实例化仅有一种明智的方

    • 我正在使用helm charts创建部署微服务,通过执行helm create创建包含部署、服务和入口的基本图表,但我没有其他配置,如水平pod自动缩放器、pod中断预算。

    • 我试图使用OpenNLPJavaAPI从文档中提取名称、技能等实体。但它没有提取正确的名称。我使用opennlp源锻造链接上可用的模型 下面是一段java代码- 我想做的是: 我正在使用ApacheTika将PDF文档转换为纯文本文档 但它正在提取姓名和其他单词。它不是提取专有名称。如何创建自定义模型,从文档中提取游泳、编程等技能? 给我一些想法! 任何帮助都将不胜感激!?

    • 问题内容: 我正在http://www.cafeaulait.org/javafaq.html上阅读#6.10项,然后我开始怀疑大型企业如何创建自己的JVM实现。一个人会尝试(或可行)实验性的东西吗? 问题答案: 从技术上讲,创建该新JVM所需的所有信息都是该语言和目标平台的公共规范。即使字节码解释在很大程度上相同,JVM还是需要根据其是要在台式机还是手机上运行而有所不同。 一些开始寻找信息的地方

    • 本文向大家介绍如何使用JavaScript创建SVG图形?,包括了如何使用JavaScript创建SVG图形?的使用技巧和注意事项,需要的朋友参考一下 所有现代浏览器均支持SVG,您可以使用JavaScript轻松创建它。Google Chrome和Firefox均支持SVG。 使用JavaScript创建一个空白的SVG文档对象模型(DOM)。使用属性创建形状,例如圆形或矩形。

    • 我目前使用matplotlib以以下方式生成图例: 这在某种程度上是可行的,见1。但我在我的传奇中复制了信息。 我宁愿把传说分开。所以我有不同颜色的线对应于时间t,一条法线作为我的解析解,一个点作为我的模拟结果。 诸如此类 --(红线)t=25 --(蓝线)t=50 --(绿线)t=500 模拟 --解析解 现在有人知道我如何用matplotlib实现这一点了吗?