Visualizzazione dei risultati da 1 a 8 su 8

Discussione: aiuto programma

  1. #1

    aiuto programma

    Ciao vorrei creare in java un piano cartesiano sulla quale viene disegnato un grafico lineare prendendo le coordinate da un file di testo.

    mi potete dare una mano?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    partiamo da cosa non sai fare e da quali sono i tuoi problemi
    RTFM Read That F*** Manual!!!

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da cyro1986 Visualizza il messaggio
    Ciao vorrei creare in java un piano cartesiano sulla quale viene disegnato un grafico lineare prendendo le coordinate da un file di testo.

    mi potete dare una mano?
    Se non vuoi/puoi usare una libreria apposita per la creazione di "grafici", devi scrivere tu un pochino di codice. A livello basilare basta estendere JPanel ed effettuare del custom painting nel metodo paintComponent.

    Un esempio basilare di piano cartesiano lo trovi tra i miei nuovi Java Examples, si chiama "Hand Drag Panel", l'ho fatto giusto ieri. L'esempio mostra un piano cartesiano con un po' di punti segnati, l'obiettivo non era tanto il piano in sé ma mostrare come fare il dragging con il cursore "manina".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    mi sto aiutando con questo codice


    codice:
    public class LineChartDemo6 extends ApplicationFrame 
     { 
    
    public LineChartDemo6(final String title)  
        { 
            super(title);          
            final XYDataset dataset = createDataset(); 
            final JFreeChart chart = createChart(dataset); 
            final ChartPanel chartPanel = new ChartPanel(chart); 
            chartPanel.setPreferredSize(new java.awt.Dimension(500, 270)); 
            setContentPane(chartPanel); 
        } 
             
            private XYDataset createDataset()  
           
    { 
    
    final XYSeries series = new XYSeries("Chart"); 
    
    
      try 
    { 
            DataInputStream dis = null;  
            String record = null;  
            int recCount = 0;  
    
            File file = new File("045528f7.txt"); 
            file = file.getAbsoluteFile();   
            String path=String.valueOf(file); 
            System.out.println(path); 
             
    
               File f = new File(path);  
               FileInputStream fis = new FileInputStream(f);  
               BufferedInputStream bis = new BufferedInputStream(fis);  
               dis = new DataInputStream(bis);   
               record=dis.readLine(); 
    
                while ( (record=dis.readLine()) != null ) 
     {  
               
                 recCount++;  
                  
               String values=record; 
               String comma=","; 
               int location= values.indexOf(comma); 
               String xvalue=values.substring(0,location);  
               String yvalue=values.substring(location+1);  
               long x_val= Integer.valueOf(xvalue); 
               long y_val= Integer.valueOf(yvalue); 
               series.add(x_val,y_val);  
    } 
    } 
    catch(Exception e) 
    { 
    } 
              
        
            final XYSeriesCollection dataset = new XYSeriesCollection(); 
          
             dataset.addSeries(series); 
        
                     
            return dataset; 
           
        } 
    
          /* 
         * Creates a chart. 
         *  
         * @param dataset  the data for the chart. 
         *  
         * @return a chart. 
         */ 
    
        private JFreeChart createChart(final XYDataset dataset)  
    { 
             
            // create the chart... 
                final JFreeChart chart = ChartFactory.createXYLineChart( 
                "Line Chart Demo 6 ",       
                "X",                     
                "Y",                       
                dataset,                   
                PlotOrientation.VERTICAL,    
               //Using PlotOrientation.HORIZONTAL would display 'x' values 'vertically' & 'y' values horizontally. 
                true,                   
                true,           
                false                 
            ); 
    
    /*  createXYLineChart(String title, 
     String xAxisLabel, 
    String yAxisLabel,XYDataset dataset, 
     PlotOrientation, 
         boolean  
    
    legend,boolean tooltips, 
     boolean urls)  */ 
    
    
            // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART... 
            chart.setBackgroundPaint(Color.white); 
    
    //        final StandardLegend legend = (StandardLegend) chart.getLegend(); 
      //      legend.setDisplaySeriesShapes(true); 
             
            // get a reference to the plot for further customisation... 
            final XYPlot plot = chart.getXYPlot(); 
            plot.setBackgroundPaint(Color.lightGray); 
        //    plot.setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5.0, 5.0, 5.0, 5.0)); 
            plot.setDomainGridlinePaint(Color.white);              
            plot.setRangeGridlinePaint(Color.white);                
            final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); 
            renderer.setSeriesLinesVisible(1,true);   
            renderer.setSeriesShapesVisible(1,false); 
            plot.setRenderer(renderer); 
    
            // change the auto tick unit selection to integer units only... 
            final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); 
            rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); 
            // OPTIONAL CUSTOMISATION COMPLETED. 
                     
            return chart; 
             
        } 
    
         
       // Starting point for the demonstration application. 
        // @param args  ignored. 
                
             public static void main(final String args[]) 
       { 
             
              
             final LineChartDemo6 demo = new LineChartDemo6("Line Chart Demo 6");  
                    demo.pack();  
            RefineryUtilities.centerFrameOnScreen(demo); 
            demo.setVisible(true); 
            
       
        } 
       
         
    }
    Ultima modifica di LeleFT; 07-07-2014 a 12:43

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    a parte l'uso dei tag code per il codice....ancora non ho capito quale realmente è il tuo problema
    RTFM Read That F*** Manual!!!

  6. #6
    Quote Originariamente inviata da valia Visualizza il messaggio
    a parte l'uso dei tag code per il codice....ancora non ho capito quale realmente è il tuo problema
    sorry... non mi sono spiegato bene forse... vorrei creare un piano cartesiano e su questo piano vorrei che venissero inseriti dei punti (creando un grafico lineare). le coordinate dei punti devono essere letti da un file di testo

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Quote Originariamente inviata da cyro1986 Visualizza il messaggio
    sorry... non mi sono spiegato bene forse... vorrei creare un piano cartesiano e su questo piano vorrei che venissero inseriti dei punti (creando un grafico lineare). le coordinate dei punti devono essere letti da un file di testo
    ok, ma io vorrei sapere quali sono i TUOI problemi nello scrivere questo pezzo di codice.
    Da come scrivi, se hai uno snippet di codice mi aspetto tu mi dica quale problema ti dà, se non ce l'hai mi aspetto che tu mi dica quali sono le tue difficoltà. Detta così sembra che ti interessi il codice già pronto e che qualcuno di noi te lo scriva.
    Again, quali sono i tuoi problemi nella scrittura del suddetto codice? nell'approccio al problema insomma.

    ps andbin ti ha pure dato ottimi suggerimenti
    RTFM Read That F*** Manual!!!

  8. #8
    Mi pare dal codice che hai postato che tu stia usando JFreeChart (che in passato ho già usato in alcuni progetti).
    L'unico problema è che su JFreeChart c'è poca documentazione in quanto è a pagamento.
    Se stai iniziando da poco ti consiglio la soluzione di andbin altrimenti se già conosci l'ambiente ti verrà più semplice.
    Come ti ha detto valia esponi i tuoi dubbi / perplessità / errori(StackTrace) e potremo darti una mano.

    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

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 © 2026 vBulletin Solutions, Inc. All rights reserved.