Неясно, к чему вы хотите добавить изображение, поэтому я предполагаю, что оно будет содержаться в каком-то объекте Pane
(называемом YOUR_PANE
), но это может быть что-то еще, что расширяетNode
, например AnchorPane
или VBox
.В конце концов это то, что будет содержаться в Scene
, используемом вашим текущим Stage
Сначала вам понадобится ссылка на изображение, которое вы хотите загрузить, что можно сделать с помощьюa InputStream
:
//Creating an image
Image image = new Image(new FileInputStream("PATH_TO_IMAGE"));
Используя это изображение, вы можете создать ImageView
, который является контейнером изображений JavaFX (используется несколько примеров значений).
//Setting the image view
ImageView imageView = new ImageView(image);
//Setting the position of the image
imageView.setX(50);
imageView.setY(25);
//setting the fit height and width of the image view
imageView.setFitHeight(455);
imageView.setFitWidth(500);
InВ вашем примере вы хотите изменить изображение в зависимости от результата ваших операторов If
, чтобы вы могли изменить путь к изображению следующим образом:
String imagePath = "C://defaultImage.jpg";
try {
weight = Double.parseDouble(weightText.getText());
height = Double.parseDouble(heightText.getText());
if (weight > 0 && wzrost > 0) {
bmi = (weight / (height* height)) * 100;
bmi2 = (int) bmi;
bmi = (double) bmi2 / 100;
if (bmi > 30) {
label.setText("Your'e too fat. Your bmi is: " + bmi);
imagePath = "C://image1.jpg"
} else if (bmi > 25 && bmi < 30) {
label.setText("Little to much weight. Your bmi is: "+bmi);
imagePath = "C://image2.jpg"
} else if (bmi > 18.5 && bmi < 25) {
label.setText("Great shape. Your bmi is: " + bmi);
imagePath = "C://image3.jpg"
} else {
label.setText("Your'e to skinny.Your bmi is:" + bmi);
imagePath = "C://image4.jpg"
}
} else {
label.setText("Wrong values");
}
Image image = new Image(new FileInputStream(imagePath));
//Setting the image view
ImageView imageView = new ImageView(image);
//Setting the position of the image
imageView.setX(50);
imageView.setY(25);
//setting the fit height and width of the image view
imageView.setFitHeight(455);
imageView.setFitWidth(500);
//Adding the image to the pane you want it to be displayed in
YOUR_PANE.getChildren().add(imageView);
} catch (Exception e) {
label2.setText("Use dot");
label.setText("Wrong values!");
}
Это предполагает, что вы создаете свой графический интерфейс полностью вкод, но тот же эффект может быть достигнут с помощью файлов FXML, что имеет много преимуществ ( вот что Оркаль должен сказать ).Одним из преимуществ является то, что вы можете использовать инструмент под названием Scene Builder , который позволяет создавать графический интерфейс с помощью интерфейса перетаскивания.