Pages: 1
Подключение внешних jar библиотек (Chart) в Anylogic и их отображение, например
Здравсвуйте!
Проблема в следующем: используем Anylogic и натолкнулись на ряд ограничений. В частности, предлагаемые диаграммы (например, "круговая диаграмма" типа пирог) не позволяют делать градиентную заливку, 3D, подписи на самой диаграмме (значения) и др. Только простейшие функции и отображения.

Есть же большой класс внешних бесплатных библиотек в форме *.jar файлов, которые вроде как Anylogic позволяет подключить через подменю "Зависимости". И даже код подключенной библиотеки воспринимает потом. Но вот как созданный график добавить на презентацию в процессе отображения - мне не ясно. Например, я скачал JFreeChart, даже создал в коде диаграмму, но вот добавить ее на холст не могу. Код

Code
presentation.add(shape);
который нормально отрабатывает (добавляет) все собственные объекты библиотеки Anylogic, внешние JAR на холсте размещать не хочет.... как быть?

Код, который я пишу:


Code
 DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    String series1 = "Java";
    dataset.addValue(5.0, series1, "2005");

JFreeChart chart = ChartFactory.createLineChart("A", "B", "C", dataset);
presentation.add(chart);

Ошибка:
Описание: Метод add(MarkupShape) в типе ShapeTopLevelPresentationGroup неприменим для аргументов (JFreeChart). Местоположение: Model40/Main/button - Кнопка
Здравствуйте, Юрий!
Объект presentation — это объект движка AnyLogic, который может содержать только объекты классов, предусмотренных движком, или их наследников.

Для этой библиотеки, JFreeChart, нужно обращаться к объекту из Java Swing/AWT, скорее всего, JPanel или Panel. Я могу ошибаться, надо самому попробовать. Думаю, что к пятнице я смогу вам дать нужный код.

Пока попробуйте сами погуглить, например, по этому запросу.
Юрий, вот код, который позволит отобразить график.

Итак, нужно создать объект класса JFrame и добавить на него объект ChartPanel, который содержит нужный chart:
Code
    JFrame frame = new JFrame("Chart");
   
   DefaultCategoryDataset dataset= new DefaultCategoryDataset();
   
   String series1 = "Java";
   
   dataset.addValue(5.0, series1, "2005");
   
   JFreeChart chart = ChartFactory.
      createLineChart("A", "B", "C", dataset);
      
   ChartPanel cp = new ChartPanel(chart);
   
   cp.setMouseWheelEnabled(true);
   cp.setSize( 300, 300 );
   frame.add(cp);
   frame.pack();
   frame.setVisible(true);
Испорльзуйте мастер подстановки кода, чтобы автоматически импортировать классы и получать информацию о функциях (Ctrl + Space). Если вы просто скопируете и вставите код, например в On startup, то нужно будет также скопипастить импорт в Imports Section в свойствах Main:
Code
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import javax.swing.JFrame; 
Успехов!
Pages: 1
Users browsing this topic (1 guests, 0 registered, 0 hidden)