powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Координаты для XYSeries (бибиотека JfreeChart)
6 сообщений из 6, страница 1 из 1
Координаты для XYSeries (бибиотека JfreeChart)
    #38629266
Полуламер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотелось бы узнать, можно ли каким-то образом изменить стандартную выдачу координат определенной точки графика, полученного как объект XYSeries. По умолчанию, когда наводишь курсор мыши на график, выдается имя серии и XY-значения. А хотелось бы, если это возможно, выдавать не просто так, а допустим в специальном формате или с комментариями. Есть возможность сделать такoe? Предполагаю, что это теоретически можно сделать через какой-то рендер, но вот как именно - не нашел в сети. Поделитесь пожалуйста своими мысляит на этот счет.
...
Рейтинг: 0 / 0
Координаты для XYSeries (бибиотека JfreeChart)
    #38630020
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Координаты для XYSeries (бибиотека JfreeChart)
    #38642548
Полуламер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz , спасибо за линк, только сейчас вернулся к старой проблеме. Но, насколько я понял, предложенная по линку метода изменяет легенду чарта? Мне же нужно изменить информацию, выдаваемую при перемещении курсора мыши по графику. После попытки изменить свой рендерер класса XYLineAndShapeRenderer так, как написано в примере, ничего не получилось, точнее, совсем не изменилось - и легенда, и информация мыши выглядят точно так же :(
...
Рейтинг: 0 / 0
Координаты для XYSeries (бибиотека JfreeChart)
    #38642609
Полуламер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя стоп, прочитал, что там написано дальше серым шрифтом и сумел наконец добраться до нужного свойства XYItemRenderer, которое называется StandardXYToolTipGenerator. С его помощью можно как хочешь менять вид выдаваемых мышкой координат, а это уже пол-дела.
...
Рейтинг: 0 / 0
Координаты для XYSeries (бибиотека JfreeChart)
    #38643319
Полуламер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Черт, совершенно дурацкая ситуация, в примере

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
public class MouseListenerDemo4 extends ApplicationFrame
                                implements ChartMouseListener {

    private JFreeChart chart;

    private ChartPanel chartPanel;

    List<String> indices = new ArrayList(Arrays.asList(new String[]{"Bulka", "Vulka", "Mulka"}));

    /**
     * A demonstration application showing how to pick up mouse clicks on the
     * legend.
     *
     * @param title  the frame title.
     */
    public MouseListenerDemo4(String title) {
        super(title);
        String chartTitle = "Mouse Listener Demo 4";
        XYDataset dataset = createDataset();
        this.chart = ChartFactory.createXYLineChart(chartTitle, "X", "Y",
                dataset, PlotOrientation.VERTICAL, true, true, false);
        chartPanel = new ChartPanel(this.chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
        chartPanel.setMouseZoomable(true, false);
        chartPanel.addChartMouseListener(this);
        setContentPane(chartPanel);
    }

    /**
     * Creates a sample dataset.
     *
     * @return The dataset.
     */
    public XYDataset createDataset() {
        XYSeries series = new XYSeries("Series 1");
        series.add(12.5, 11.0);
        series.add(15.0, 9.3);
        series.add(20.0, 21.0);
        XYSeriesCollection dataset = new XYSeriesCollection();
        dataset.addSeries(series);
        return dataset;
    }

    /**
     * Receives chart mouse click events.
     *
     * @param event  the event.
     */
    public void chartMouseClicked(ChartMouseEvent event) {

    }

    /**
     * Receives chart mouse moved events.
     *
     * @param event  the event.
     */
    public void chartMouseMoved(ChartMouseEvent event) {

        XYItemRenderer renderer = null;
        StandardXYToolTipGenerator g = null;

        if ((null != entity) && (null != entity.getToolTipText())) {
            XYItemEntity xyEntity = (XYItemEntity) event.getEntity();
            System.out.println(xyEntity);

            String title = indices.get(xyEntity.getItem());
            renderer = plot.getRenderer();
            g = new StandardXYToolTipGenerator(
                    title + " : " + "({1}, {2})",
                    new DecimalFormat("0.00"), new DecimalFormat("0.00")
            );
            renderer.setToolTipGenerator(g);
        }

    }

    /**
     * Starting point for the demonstration application.
     *
     * @param args  ignored.
     */
    public static void main(String[] args) {
        MouseListenerDemo4 demo = new MouseListenerDemo4(
            "Mouse Listener Demo 4");
        demo.pack();
        RefineryUtilities.centerFrameOnScreen(demo);
        demo.setVisible(true);
    }

}


все отлично работает, а вот чарт из диалога проекта не "слышит" шаренья мыши по нему :( Уважаемый Blazkowicz , Вы наверняка знаете, в чем дело. Если что, я добавил в шапке класса implements ChartMouseListener и у метода chartMouseMoved поставил @Override.
...
Рейтинг: 0 / 0
Координаты для XYSeries (бибиотека JfreeChart)
    #38643359
Полуламер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя опять сам разрулил - не хватало строчки с присваиванием слушателя chartPanel.addChartMouseListener(this);
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Координаты для XYSeries (бибиотека JfreeChart)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]