문제

모든 하위 요소의 너비의 합이 HBox의 너비와 같도록 HBox에서 하위 요소를 관리하는 것이 가능합니까?

따라서 요소가 HBox를 채우고 공간이 남지 않습니다.

하위 요소의 높이는 기본적으로 HBox의 높이입니다. 그러면 너비는 어떻습니까?내 프로그램에서 너비를 계산하고 싶지 않습니다.레이아웃이 이 작업을 자동으로 수행하여 계산이 필요하지 않다면 더 좋을 것입니다.

도움이 되었습니까?

해결책

어떤 종류의 아이들이 그 일을 하느냐에 따라 HBox 포함하다.하위 항목 중 일부는 크기 조정이 가능한 노드가 아닐 수 있습니다.그러나 일반적으로 말하면 다음을 사용할 수 있습니다. HBox.setHgrow() 방법과 동일하게 설정 Priority hbox의 모든 아이들을 위해.설명은 javadoc에 있습니다.

Hbox에 포함 된 경우 아동의 수평 성장 우선 순위를 설정합니다.설정된 경우 Hbox는 우선 순위를 사용하여 Hbox가 선호하는 폭보다 크기가 커지면 추가 공간을 할당합니다.여러 Hbox 어린이가있는 경우 같은 수평 성장 우선 사항, 그러면 여분의 공간이 될 것입니다 나뉘다 저녁 그들 사이에.어린이에게 수평 성장 우선 순위가 설정되지 않으면 Hbox는 가능한 경우 추가 수평 공간을 할당하지 않습니다.값을 null로 설정하면 제약 조건이 제거됩니다.

또한 그리드와 같은 레이아웃을 얻으려는 경우 예를 들어 다른 레이아웃 옵션을 사용해 보십시오. TilePane 또는 FlowPane 그리고 아마도 GridPane.

다른 팁

답변을위한 간단한 코드는 다음과 같습니다.

Button button1 = new Button("Save");
Button button2 = new Button("Delete");
HBox.setHgrow(button1, Priority.ALWAYS);
HBox.setHgrow(button2, Priority.ALWAYS);
.

HBOX 창의 이름이 아닌 HBOX 클래스를 사용하는 것이 좋습니다.

FXML :

<HBox>
   <Label HBox.hgrow="ALWAYS" maxWidth="Infinity">
       TEST
   </Label>
</HBox>
.

@ bdshahab의 답변을 추가하면 Hbox가 어린이를 선호하는 너비로 조정하려고 시도 할 것이므로 결합 된 선호 너비가 Hbox 너비보다 넓은 경우에만 상자를 채울 것입니다.

그래서 다음과 같은 일을 할 필요가있을 수 있습니다 :

Button button1 = new Button("Save");
Button button2 = new Button("Delete");
HBox.setHgrow(button1, Priority.ALWAYS);
HBox.setHgrow(button2, Priority.ALWAYS);
button1.setPrefWidth(100000);
button2.setPrefWidth(100000);
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top