为Jpanel制作图形但是在不同的类中

时间:2011-12-27 22:27:13

标签: java swing class graphics jpanel

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

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

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

anim是动画对象放置的面板。我正在尝试为需要图形中PathObject方法的图形创建一个名为drawline()的类,但我找不到将图形添加到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());
  }
}

1 个答案:

答案 0 :(得分:1)

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

如果我理解正确,以下情况可以:

您可以为绘制内容的对象设置接口:

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

然后,您的ListObject可以implements Drawable

动画(JPanel)可能有:

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

在paintComponent中你可以画它们。

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