Я пытаюсь создать пользовательский интерфейс для графического программирования. Я хотел бы использовать JUNG для обработки графических аспектов рисунка. Вместо того, чтобы рисовать все мои виджеты с помощью Graphics2D, я хотел бы использовать виджеты Swing как можно чаще, чтобы воспользоваться преимуществами архитектуры событий Swing.
Я хотел бы иметь возможность панорамировать, масштабировать, вращать холст, на котором нарисован график, но при этом сохранять возможность манипулировать виджетами Swing, если они достаточно велики, чтобы их можно было увидеть. Я также хочу, чтобы виджеты автоматически размещались на основе выбранного мной алгоритма компоновки JUNG.
Как мне объединить рисунки Graphics2D и компоненты Swing?
Я понимаю, что компоненты JComponent сами рисуют себя, используя свои методы paint()
. У меня возникли проблемы с пониманием того, как создавать объекты Swing, на которые могут влиять преобразования Graphics2D, и при этом сохранять всю свою обработку событий. Я не могу просто показать изображение компонента. Компонент должен быть активным.
Я попытался создать подкласс виджета и добавить AffineTransform к графическому объекту, который передается родительскому методу paint
. Он вращает виджет, но обрезка кажется отключенной.
Какие-либо предложения? На данный момент я бы не хотел добавлять еще одну библиотеку, если это возможно.