2014-05-14 6 views
1

I 다음 예제 코드가 있습니다자바 FX 텍스트 무대 폭을 뻗어

다음 창에 결과
import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.control.TextField; 
import javafx.scene.layout.GridPane; 
import javafx.scene.text.Text; 
import javafx.stage.Stage; 

public class Test extends Application { 


    public static void main(String[] args) { 
     launch(args); 
    } 

    @Override 
    public void start(Stage primaryStage) { 


     primaryStage.setTitle("JavaFX Test"); 

     GridPane grid = new GridPane(); 
     grid.add(new Text("Enter the value in the text box below:"), 0, 0, 3, 1); 

     grid.add(new Text("Label: "), 0, 1); 
     grid.add(new TextField(), 1, 1); 
     grid.add(new Text("units"), 2, 1); 

     Scene scene = new Scene(grid); 
     primaryStage.setScene(scene); 
     primaryStage.sizeToScene(); 
     primaryStage.show(); 
    } 
} 

: 나는 폭 창의 크기를 조절하면

JavaFX Window

내가 기대를 즉, TextField도 크기가 조정됩니다.

Resized JavaFX Window

제 질문은 창의 오른쪽에있는 공백은 어디에서 오는 것입니까? 창 크기가 구성 요소가 차지하는 공간보다 훨씬 넓은 이유는 무엇입니까? 창에 공간이 충분하더라도 창을 작게 만들면 TextField의 크기가 조절되는 이유는 무엇입니까? 내가 맨 위 텍스트를 제거하면

은 창 크기가 더 제정신 :

JavaFX Window sans top Text

나는 내가 찾고 효과를 달성하기 위해 한 VBox와 HBox의를 사용하여 시도했지만, 창은 항상 같다 위의 첫 번째 이미지처럼 보입니다. 무슨 일이야?

+0

실행중인 JavaFX 버전은 무엇입니까? –

+0

@James_D JDK 1.7.0_51 –

답변

3

이것은 알려진 버그 인 것 같습니다 : RT24636. 최신 릴리스 (Java 1.8.0_05)에서 수정되었습니다.

JIRA에 해결 방법이 게시되어 있지 않으며 즉시 해결 방법이 없습니다.

+0

으로 패키징 된 jfxrt.jar 버전을 사용하고 있습니다. Java 8로 업데이트하면 실제로 문제가 해결되었습니다. 이는 내 사용자가 Java 8을 작동시켜야 함을 의미합니까? 이 문제를 해결할 다른 방법이 있습니까? –

+0

해결 방법을 찾을 수 있는지 확인하기 위해 열 제한 조건을 혼란스럽게 만들 수는 있지만 Java 8을 사용하는 것이 유일하게 확실한 방법 일 수 있습니다. 배포 요구 사항에 따라 [자체 포함 된 패키지] (http://docs.oracle.com/javafx/2/deployment/self-contained-packaging.htm)를 사용하여 Java 버전을 확인할 수도 있습니다. –

+0

고마워요, 그건 유망 해 보입니다! –