Невозможно вызвать setVertexFillPaintTransformer - метод неприменим для аргументов

Я не могу запустить ни один из примеров Юнга, которые устанавливают или изменяют Вершину (или другие Трансформеры). Я получаю следующую ошибку:

The method setVertexFillPaintTransformer(Function) in the type RenderContext is not applicable for the arguments (Transformer<String,Paint>)

Пример кода:

        vv.getRenderContext().setVertexFillPaintTransformer(vertexPaint);

где вершинная краска

Transformer<String,Paint> vertexPaint = new Transformer<String,Paint>() {
           public Paint transform(String b) {
              return Color.orange;
           }
        };

person anarche    schedule 27.03.2018    source источник


Ответы (1)


Похоже, вы используете версию 2.1.* библиотек JUNG (в которой используются типы Guava вместо старых типов общих коллекций, таких как Transformer: https://github.com/jrtom/jung/releases), но с использованием более старой версии примера кода.

Если вы используете версию примера кода, поставляемую с 2.1.1, все должно быть в порядке.

person Joshua O'Madadhain    schedule 28.03.2018
comment
Я нашел образцы и вытащил последнюю версию git, но я не могу их скомпилировать - самая основная проблема в том, что она кажется запутанной - типичная ошибка: конструктор VisualizationViewer (Network, LayoutAlgorithm, Dimension) undefined — похоже, код использует неправильную версию Jung, хотя я использую только библиотеки Jung 2.1.1 - person anarche; 28.03.2018
comment
Я должен упомянуть, что я добавляю зависимость от guava maven, иначе он жалуется: ‹/зависимость› - person anarche; 28.03.2018
comment
См. stackoverflow.com/questions/49535831/weird-import-issues-jung2 для ответа на вышеупомянутое беспокойство. - person Joshua O'Madadhain; 28.03.2018