【问题标题】:making graphics for a Jpanel but in a different class为 Jpanel 制作图形,但在不同的类中
【发布时间】:2011-12-27 22:27:12
【问题描述】:

我的程序用于对不同数据结构的算法进行动画处理,我需要创建所有可以移动的对象。

我研究过使用 Graphics 类,但看起来您必须创建一个方法来在具有面板的类中绘制线条和框。有没有办法从具有面板的类的实例中进行绘制?

现在我有使用如下标签的列表。

anim 是将动画对象放入的面板。我正在尝试为需要图形中的 drawline() 方法的图形创建一个名为 PathObject 的类,但我找不到将图形添加到 anim 的方法。 任何帮助都会很棒。

package Objects;

import javax.swing.*;

import Algorithms.Animated;


/** Animated object to be displayed as part of a list */
public class ListObject<T extends Number> extends AnimObject<T>
{
  // Constructor
  public ListObject(Animated anim, T val)
  {
    super(anim, val);

    Setscale(20, val.intValue());
  }
}

【问题讨论】:

  • 不确定这里的问题是什么。 AnimObject 是什么?
  • 如需尽快获得更好的帮助,请发帖SSCCE

标签: java swing class graphics jpanel


【解决方案1】:

(一个友好的请愿书:包名用小写字母,方法名以小写字母开头。)

如果我对您的理解正确,则可以这样做:

你可以为对象绘制一个接口:

public interface Drawable {
    void paint(Graphics2D g);
}

然后您的 ListObject 可以implements Drawable

动画(JPanel)可能有:

public void addDrawable(Drawable drawable) {
    drawables.add(drawable);
}

你可以在它的paintComponent中绘制它们。

在某种程度上,您正在构建自己的轻量级组件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 2012-12-31
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    相关资源
    最近更新 更多