문제

내가 사용하는 장면을 보고 내 GUI 및 난 표시 Images 으로 사용자에서 항목을 선택합니다.이 Images 은 서로 다른 크기와는 경우 Image 보다 작게 창에서의 이미지가 표시되지 않은 상태에서 왼쪽 상단의 창입니다.어떻게 내가에 대해 이동 ImageView 그리고/또는 Image 표시의 중심에서 Pane?

나 보내 javafx 이미지 뷰와 이미지 Api 와 그러나 나는 없다에서 중심으로 ImageViewPane.나는 아무것도 보지 못했 현장에서 작성기 중 하나.일반적으로 현장에서 빌더가 있는 경우에,방법 센터 노드,옵션이있을 것입을 위해 중심에 두고 있다.

도움이 되었습니까?

해결책

에서 어떤 종류의 창에 그것의 가능한 이미지 설정에서 정렬 특정 위치..이를 위해 사용할 수 있도 HBox

삽입할 때 ImageHBox, 처음에는 그 다음과 같습니다.

screenshot

지금 설정 정렬의 속성 HBox

screenshot

이 맞춤을 변경하는 센터 및 출력이 표시

screenshot

난 그것의 일을 위해 당신

또한 그렇게 프로그래밍 방식으로서 Pane 을 통해 얻 이미지

AnchorPane anchorPane = new AnchorPane();
Image img = new Image(getClass().getResourceAsStream("Edit-Male-User-icon.png"));
ImageView imageView = new ImageView(img);
anch.getChildren().add(imageView );
ImageView app = (ImageView) (Node) anchorPane.getChildren().get(0);
app.setX(100);
app.setY(100);

다른 팁

Group 고 현장에서 시작방법:

Group root = new Group();
Scene scene = new Scene(root, 551, 400, Color.BLACK);
primaryStage.setScene(scene);

Create an ImageView 다음과 같은 설정 속성:

ImageView imageView = new ImageView();
// set aspect ratio
imageView.setPreserveRatio(true);
// resize based on the scene
imageView.fitWidthProperty().bind(scene.widthProperty());
imageView.fitHeightProperty().bind(scene.heightProperty());

StackPane (적어도 그게 내가 사용)바인딩하는 속성:

StackPane stack = new StackPane();
stack.getChildren().add(imageView);

    stack.translateXProperty()
            .bind(scene.widthProperty().subtract(stack.widthProperty())
                    .divide(2));

    stack.translateYProperty()
            .bind(scene.heightProperty().subtract(stack.heightProperty())
                    .divide(2));

추가 이 스택을 뿌리 요소:

root.getChildren().add(stack);

primaryStage 과 다른 코드를 실행에서 당신의 시작방법:

primaryStage.show();

를 만들 수 있는 간단한 방법은 작은 이미지를 동적으로 중심으로:

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class CenterInStage extends Application {

    private final String TITLE = "Center in Stage";
    private final double WIDTH = 350;
    private final double HEIGHT = 250;
    private final String IMAGE_PATH =
            "http://icons.iconarchive.com/icons/iconka/meow-2/64/cat-rascal-icon.png";

    @Override
    public void start(Stage primaryStage) {

        primaryStage.setTitle(TITLE);

        Image image = new Image(IMAGE_PATH);
        ImageView imageView = new ImageView(image);
        imageView.setPreserveRatio(true);

        StackPane pane = new StackPane();
        pane.getChildren().add(imageView);
        StackPane.setAlignment(imageView, Pos.CENTER);

        Scene scene = new Scene(pane, WIDTH, HEIGHT);

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

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

enter image description here

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