Как я могу изменить размер одной точки и показать метку в JFreeChart - PullRequest
0 голосов
/ 17 мая 2018

Как мне изменить размер / цвет одной точки и показать метку в JFreeChart?С помощью этого ChartMouseListener я могу получить точку выбора пользователя и установить точку в особом стиле, например, увеличить или изменить цвет и т. Д. Пожалуйста, помогите мне, как это сделать.

       chartPanel.addChartMouseListener(new ChartMouseListener() {

        @Override
        public void chartMouseMoved(ChartMouseEvent arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public void chartMouseClicked(ChartMouseEvent arg0) {
            // TODO Auto-generated method stub
            JFreeChart chart = arg0.getChart(); 


            if (chart == null) 
                return; 

            XYItemEntity ce = (XYItemEntity) arg0.getEntity(); 
            if (ce == null) 
                return; 
            IntervalXYDataset my = (IntervalXYDataset) ce.getDataset(); 

            int sindex = ce.getSeriesIndex(); 
            int iindex = ce.getItem(); 

            //i want make change the selectted point in here. how to do this
            System.out.println("x = " + my.getXValue(sindex, iindex)); 
            System.out.println("y = " + my.getYValue(sindex, iindex)); 
        }
    });

enter image description here

1 Ответ

0 голосов
/ 17 мая 2018

С учетом выбранного вами средства визуализации примените подходящий генератор меток и переопределите соответствующие методы, чтобы вернуть желаемые свойства формы и краски, когда строка и столбец соответствуют соответствующей серии и индексу, записанному вашим ChartMouseListener. В конкретном случае XYLineAndShapeRenderer вы можете

  • Укажите XYItemLabelGenerator, как показано здесь .

  • Переопределить метод getItemShape(), как показано здесь ,

  • Переопределить метод getItemFillPaint(), как показано здесь ,

...