2016-06-26 4 views
0

방금 ​​JavaFX를 사용하기 시작했는데이 문제를 해결할 수 없습니다. 내 캔버스가 사용 가능한 전체 공간을 채우지 못하는 것 같습니다. 크기를 제 캔버스로 설정했는데이 크기가 있지만 주변의 창은 더 커집니다. 이렇게하면 창의 오른쪽과 창 아래쪽에 흰색 경계선이 생깁니다.JavaFX 캔버스 크기 창

내 코드 :

@Override 
public void start(Stage primaryStage) throws Exception { 
    primaryStage.setTitle("ShellShock"); 
    primaryStage.setResizable(false); 

    final Dimension SCREEN_SIZE = Toolkit.getDefaultToolkit().getScreenSize(); 

    Screen screen = new Screen(SCREEN_SIZE.getWidth() * 0.9, SCREEN_SIZE.getHeight() * 0.9); 

    Scene scene = new Scene(screen); 

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

Screen 클래스 :

public class Screen extends Pane { 

private Canvas[] canvases; 

public Screen(double width, double height) { 
    this.setPrefSize(width, height); 

    this.canvases = new Canvas[2]; 

    Canvas background = new Canvas(width, height); 
    GraphicsContext gcb = background.getGraphicsContext2D(); 
    gcb.setFill(new LinearGradient(0, 0, 0, 1, true, CycleMethod.REFLECT, new Stop(0.4, Color.BLUE.darker()), 
      new Stop(1.0, Color.BLUE.brighter().brighter()))); 
    gcb.fillRect(0, 0, width, height); 
    Canvas foreground = new Canvas(width, height); 

    this.canvases[0] = background; 
    this.canvases[1] = foreground; 

    this.getChildren().add(background); 
    this.getChildren().add(foreground); 
} 
} 
+1

나머지 'Screen'클래스, 특히 클래스 선언을 포함하도록 질문을 편집하여 상속을 확인할 수 있도록하십시오. – VGR

+0

나는 모든 코드가 여기에 편집되었습니다. –

+0

[* 묶는 부모를 채우기 위해 Canvas의 크기를 자동으로 조정] (http://stackoverflow.com/q/31761361/230513). – trashgod

답변

0

setResizable(false); 라인을 제거하여 문제를 해결하는 것 같다.

또한 setResizable(false) 다음에 primaryStage.sizeToScene();을 삽입하십시오. 문제를 해결하는 것 같다.