2017-12-22 25 views
0

나는 지점의 arraylist 있습니다. 나는 점들을 선 밖으로 그려 내고 싶다. 여기 내가 한 일이있다. 내 코드가 빈 표시됩니다 JavaFX 여러 점을 사용하여 다중 모양을 그립니다.

public class Point { 
    private double coordinateX; 
    private double coordinateY; 

    public Point(double coordinateX, double coordinateY) { 
     this.coordinateX = coordinateX; 
     this.coordinateY = coordinateY; 
    } 

    public void setCoordinateX(double coordinateX) { 
     this.coordinateX = coordinateX; 
    } 

    public void setCoordinateY(double coordinateY) { 
     this.coordinateY = coordinateY; 
    } 

    public double getCoordinateX() { 
     return coordinateX; 
    } 

    public double getCoordinateY() { 
     return coordinateY; 
    } 
} 

처럼

for (int i = 0; i < arrPoint.size(); i++) { 
      Point startPoint = arrPoint.get(i); 
      Point endPoint = null; 
      if (i == arrPoint.size()) { 
       endPoint = arrPoint.get(0); 
      } else { 
       endPoint = arrPoint.get(i + 1); 
      } 
      Line line = new Line(); 
      line.setStartX(startPoint.getCoordinateX()); 
      line.setEndX(endPoint.getCoordinateX()); 
      line.setStartY(startPoint.getCoordinateY()); 
      line.setEndY(endPoint.getCoordinateY()); 
      box.getChildren().add(line); 
     } 

내 포인트 카스이다. JavaFx를 처음 사용합니다. 어떤 도움을받을 수 있습니까?

+0

단순히 문제를 식별하는 데 필요한 정보가 충분하지 않습니다. 우리는 어떤 종류의 레이아웃'상자'가 어디에 있는지, 또는 장면의 어디에 있는지를 알지 못합니다. 게다가 우리는 입력 데이터에 대해 아무 것도 모른다. 선은 단순히 시각적 영역의 일부가 될 수 없습니다 ... BTW : [Polygon 클래스] (https://docs.oracle.com/javase/8/javafx/api/javafx/scene/shape/)가 있습니다. Polygon.html) – fabian

답변

0

포인트를 가져 와서 그릴 포인트를 찾아야합니다.

import javafx.application.Application; 
import javafx.collections.FXCollections; 
import javafx.collections.ObservableList; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.paint.Color; 
import javafx.scene.shape.Line; 
import javafx.stage.Stage; 

public class Main extends Application { 
    public static void main(String[] args) { 
     Application.launch(args); 
    } 
    @Override 
    public void start(Stage primaryStage) { 

     primaryStage.setTitle("Draw line"); 


     Group g = new Group(); 
     Scene scene = new Scene(g, 550, 550,Color.web("0x0000FF",1.0)); 

     ObservableList<Point> arrPoint = FXCollections.observableArrayList(); 

     Point point1 = new Point(100, 200); 
     Point point2 = new Point(300, 400); 

     arrPoint.addAll(point1, point2); 

     for (int i = 0; i < arrPoint.size()-1; i++) { 
      Point startPoint = arrPoint.get(i); 
      Point endPoint = null; 
      if (i == arrPoint.size()) { 
       endPoint = arrPoint.get(0); 
      } else { 
       endPoint = arrPoint.get(i + 1); 
      } 
      Line line = new Line(); 
      line.setStartX(startPoint.getCoordinateX()); 
      line.setEndX(endPoint.getCoordinateX()); 
      line.setStartY(startPoint.getCoordinateY()); 
      line.setEndY(endPoint.getCoordinateY()); 
      g.getChildren().add(line); 
     } 



     primaryStage.setScene(scene); 
     primaryStage.show(); 
    } 
} 

나는 그것이 당신을 도울 수 있기를 바랍니다.