Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    JFreechart problemi nel visualizzare asse x

    Salve ragazzi,
    ho la difficoltà nel generare un grafico con la libreria jfreechart.

    Il problema è questo, sull'asse delle y vengono visualizzati dei valori in €
    mentre sull'asse delle x le date nel format gg-mm

    Purtroppo la stringa di 5 caratteri, risulta essere troppo grande e si vedono solo 3 puntini.

    codice:
    import java.awt.BasicStroke;
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.Font;
    import java.text.DecimalFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    import java.util.LinkedHashMap;
    import java.util.Set;
    import java.util.Vector;
    
    import javax.swing.BorderFactory;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JSlider;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.ChangeListener;
    
    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.ChartPanel;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.axis.DateAxis;
    import org.jfree.chart.axis.NumberAxis;
    import org.jfree.chart.plot.CategoryPlot;
    import org.jfree.chart.plot.PlotOrientation;
    import org.jfree.chart.renderer.category.LineAndShapeRenderer;
    import org.jfree.data.category.CategoryDataset;
    import org.jfree.data.category.DefaultCategoryDataset;
    import org.jfree.data.time.DateRange;
    import org.jfree.ui.ApplicationFrame;
    import org.jfree.ui.RefineryUtilities;
    
    import supporto.HashMapClienti;
    import supporto.HashMapConti;
    
    import com.mcsolution.beans.Conti;
    import com.mcsolution.beans.OperazioneCliente;
    import com.mcsolution.beans.OperazioneFornitore;
    
    /**
     * A simple demonstration application showing how to create a line chart using data from a
     * {@link CategoryDataset}.
     */
    public class LineChartDemo1 extends JFrame {
    
        /**
         * Creates a new demo.
         *
         * @param title  the frame title.
         * @throws ParseException 
         */
    	private JSlider slider;
    	public DecimalFormat integerFormatter = new DecimalFormat("00");
    	 private DateAxis domainAxis;
    	 
    	 public LineChartDemo1(){
    		 
    	 }
    	 
        public LineChartDemo1(final String title,HashMapConti conti,LinkedHashMap<String,OperazioneCliente> clienti,Vector<OperazioneFornitore> fornitori,String data) throws ParseException {
            
            final CategoryDataset dataset = createDataset(data,conti,clienti);
            final JFreeChart chart = createChart(dataset);
            
            final ChartPanel chartPanel = new ChartPanel(chart);
            chartPanel.setPreferredSize(new Dimension(1200, 800));
            chartPanel.setFont(new Font("Century Gothic",Font.PLAIN, 1));
            chartPanel.setDomainZoomable(true);
            chartPanel.setRangeZoomable(true);
            
            JScrollPane scrollPane = new JScrollPane(chartPanel);
            scrollPane.setPreferredSize(new Dimension(800,800));
            scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
            this.add(scrollPane);
            this.pack();
            this.setVisible(true);
        }
        
    
        /**
         * Creates a sample dataset.
         * 
         * @return The dataset.
         * @throws ParseException 
         */
        private CategoryDataset createDataset(String data,HashMapConti conti,LinkedHashMap<String,OperazioneCliente> clienti) throws ParseException {
            
            // row keys...
            final String series1 = "Costi";
            final String series2 = "Ingrosso";
            final String series3 = "Third";
            
            GregorianCalendar calendario = new GregorianCalendar();
            java.util.Date vecchiaData = new SimpleDateFormat("dd-MM-yyyy").parse(data);
            
            
          
            // create the dataset...
            final DefaultCategoryDataset dataset = new DefaultCategoryDataset();
            
        //  calendario.set(vecchiaData.getDate(), vecchiaData.getMonth(), vecchiaData.getYear());
            calendario.setGregorianChange(vecchiaData);
            for (int i=1; i<=calendario.getActualMaximum(Calendar.DAY_OF_MONTH); i++) {
            	// imposto il giorno
            	dataset.addValue(0, series2, i+"");
            	
            }
    
            
    //        Set<String> keySet = conti.keySet();
    //        for(Object key:keySet){
    //             Conti value = conti.get(key);
    //             dataset.addValue(-1*value.getTotale(), series1, key.toString());
    //        }
    //        
    //        Set<String> keySet2 = clienti.keySet();
    //        for(Object key:keySet2){
    //             OperazioneCliente value = clienti.get(key);
    //             dataset.addValue(value.getSommaAvere(), series2, key.toString());
    //        }
    
            
    
    
            return dataset;
                    
        }
        
        /**
         * Creates a sample chart.
         * 
         * @param dataset  a dataset.
         * 
         * @return The chart.
         */
        private JFreeChart createChart(final CategoryDataset dataset) {
            
            // create the chart...
            final JFreeChart chart = ChartFactory.createLineChart(
                "Line Chart Demo 1",       // chart title
                "Type",                    // domain axis label
                "Value",                   // range axis label
                dataset,                   // data
                PlotOrientation.VERTICAL,  // orientation
                false,                      // include legend
                true,                      // tooltips
                false                      // urls
            );
            
     
    
            chart.setBackgroundPaint(Color.white);
    
            final CategoryPlot plot = (CategoryPlot) chart.getPlot();
            plot.setBackgroundPaint(Color.lightGray);
            plot.setRangeGridlinePaint(Color.white);
           
    
            // customise the range axis...
            final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
            rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
            //rangeAxis.setAutoRangeIncludesZero(true);
            rangeAxis.setLabelFont(new Font("Century Gothic" ,Font.BOLD, 33));
    
              
            // customise the renderer...
            final LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
            renderer.setBaseItemLabelFont(new Font("Century Gothic" ,Font.BOLD, 33));
    //        renderer.setDrawShapes(true);
    
            renderer.setSeriesStroke(
                0, new BasicStroke(
                    2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
                    1.0f, new float[] {10.0f, 6.0f}, 0.0f
                )
            );
            renderer.setSeriesStroke(
                1, new BasicStroke(
                    2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
                    1.0f, new float[] {6.0f, 6.0f}, 0.0f
                )
            );
            renderer.setSeriesStroke(
                2, new BasicStroke(
                    2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
                    1.0f, new float[] {2.0f, 6.0f}, 0.0f
                )
            );
            // OPTIONAL CUSTOMISATION COMPLETED.
            
            return chart;
        }
    
    }
    mi potete aiutare?

  2. #2
    raga nessuno sa come risolvere questo problema?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.