Suggest a feature
×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Added: Jun 18, 2021 6:36 PM
Views: 46
Tags: javafx
  1. import javafx.application.*;
  2. import javafx.scene.*;
  3. import javafx.scene.canvas.*;
  4. import javafx.scene.paint.Color;
  5. import javafx.scene.shape.StrokeLineCap;
  6. import javafx.scene.shape.StrokeLineJoin;
  7. import javafx.stage.*;
  8.  
  9. import java.io.IOException;
  10. import java.nio.file.Files;
  11. import java.nio.file.Path;
  12. import java.nio.file.Paths;
  13. import java.sql.Array;
  14. import java.util.ArrayList;
  15. import java.util.List;
  16.  
  17. // MainApp durch den eigenen Dateinamen ersetzen
  18. public class Main extends Application {
  19.     Canvas canvas;  // Zeichenbereich
  20.  
  21.     public static void main(String[] args) {
  22.         launch(args);
  23.     }
  24.  
  25.     @Override
  26.     public void start(Stage primaryStage) {
  27.         primaryStage.setTitle("Grafik mit JavaFX");
  28.         canvas = new Canvas(1000, 800);
  29.         var root = new Group();
  30.         root.getChildren().add(canvas);
  31.         primaryStage.setScene(new Scene(root));
  32.         primaryStage.setResizable(false);
  33.         primaryStage.show();
  34.         // todo: eigene Methode statt drawShapes() aufrufen
  35.         drawShapes();
  36.  
  37.     }
  38.  
  39.     // im Canvas zeichnen
  40.     private void drawShapes() {
  41.         var gc = canvas.getGraphicsContext2D();
  42.  
  43.  
  44.         var points = getPoints("plot.csv");
  45.         //Jetziger Punkt:
  46.         Point currentpoint;
  47.         //alter Punkt:
  48.         Point cacheP = null;
  49.         for (var point :
  50.                 points) {
  51.             currentpoint = point;
  52.             if(cacheP != null){
  53.                 gc.setStroke(currentpoint.color);
  54.                 gc.strokeLine(cacheP.x,cacheP.y,currentpoint.x,currentpoint.y);
  55.             }
  56.             cacheP = currentpoint;
  57.         }
  58.     }
  59.  
  60.     public List<Point> getPoints(String file){
  61.         var points = new ArrayList<Point>();
  62.         try{
  63.             Path p = Paths.get("plot.csv");
  64.             var lines = Files.readAllLines(p);
  65.             for(var line : lines){
  66.                 points.add(new Point(line));
  67.             }
  68.         }catch(IOException e){
  69.             System.out.println("CSV nicht gefunden");
  70.             e.printStackTrace();
  71.         }
  72.         return points;
  73.     }
  74.  
  75. }