создание графики для Jpanel, но в другом классе - PullRequest
0 голосов
/ 28 декабря 2011

Моя программа используется для анимации алгоритмов для различных структур данных, и мне нужно создать все объекты, которые будут перемещаться.

Я изучил использование класса Graphics, но похоже, что вам нужно создать метод для рисования линий и блоков в классе, в котором есть панели.Есть ли способ рисования из экземпляра класса, который имеет панели?

Сейчас у меня есть списки, работающие с использованием меток, как показано ниже.

anim - панель, на которую будут помещены анимированные объекты.Я пытаюсь создать класс с именем PathObject для графиков, для которого требуется метод drawline() в графике, но я не могу найти способ добавить Graphics в 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 Ответ

1 голос
/ 28 декабря 2011

(Одна дружеская петиция: имена пакетов маленькими буквами, имена методов с маленькой буквы.)

Если я правильно вас понял, то подойдет следующее:

У вас может быть интерфейс для объектов, которые что-то рисуют:

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

Ваш ListObject может затем implements Drawable.

Анимированные (JPanel) могут иметь:

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

А в его компоненте краски вы можете рисовать их.

Таким образом, вы создаете свои собственные легкие компоненты.

...