Text labels inside jfree Gantt chart bars

前端 未结 2 1143
悲哀的现实
悲哀的现实 2020-12-11 09:21

I have a simple Gantt chart here, that consists of a number of Tasks just like that:

TaskSeries s1 = new TaskSeries(\"Planned Tasks\");
Task newTask = new T         


        
2条回答
  •  孤街浪徒
    2020-12-11 09:35

    To add a a lable inside each item set the setBaseItemLabelGenerator in this case I'm using a IntervalCategoryItemLabelGenerator but you can implement you own by extending CategoryItemLabelGenerator.

    Use this code:

    CategoryPlot plot = (CategoryPlot) chart.getPlot();
    CategoryItemRenderer renderer = plot.getRenderer();
    renderer.setBaseItemLabelGenerator( new IntervalCategoryItemLabelGenerator());
    renderer.setBaseItemLabelsVisible(true);
    renderer.setBaseItemLabelPaint(Color.BLACK);
    renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(
    ItemLabelAnchor.INSIDE6, TextAnchor.BOTTOM_CENTER));
    

    You shold then get this: b

    Ganttt Chart with BaseItemLabelGenerator

    To customise the lables implement CategoryItemLabelGenerator

    renderer.setBaseItemLabelGenerator( new CategoryItemLabelGenerator(){
    
        @Override
        public String generateRowLabel(CategoryDataset dataset, int row) {
            return "Your Row Text  " + row;
        }
    
        @Override
        public String generateColumnLabel(CategoryDataset dataset, int column) {
            return "Your Column Text  " + column;
        }
    
        @Override
        public String generateLabel(CategoryDataset dataset, int row, int column) {
            return "Your Label Text  " + row + "," + column;
        }
    
    
    });
    

    In this example generateLabel controls the lable in the bar, CategoryDataset, row and column can be used to determine which bar you are labelling

    enter image description here

提交回复
热议问题