Я пытаюсь создать простой просмотрщик изображений с помощью JavaFx, который бы схож с этим:
Viewer viewer = new Viewer("path/to/file.jpg");
Я пробовал что-то в соответствии с приведенным ниже кодом, но он не работает.
public class Viewer extends Application {
private String filePath;
public Viewer(String filePath) {
this.filePath = filePath;
}
@Override
public void start(Stage stage) {
// load the image
Image image = new Image("file:" + this.filePath);
// simple displays ImageView the image as is
ImageView iv1 = new ImageView();
iv1.setImage(image);
Group root = new Group();
Scene scene = new Scene(root);
HBox box = new HBox();
box.getChildren().add(iv1);
root.getChildren().add(box);
stage.setTitle(this.filePath);
stage.setWidth(415);
stage.setHeight(200);
stage.setScene(scene);
stage.sizeToScene();
stage.show();
}
}
Существует ли стандартный способ передачи параметров в приложение JavaFx?
Если я понимаю ваш вопрос, у вас есть один или несколько параметров для вашего субкласса приложения. У абстрактного приложения класса есть метод, называемый запуском, который получает аргументы String []. Затем вы можете передать параметр для этого, например. String[]{"--nameOfParameters=value of patameters",...}
. Вы получаете параметры для getParameters().getNamed().get("name of parameters")
.
Ниже я приведу пример.
public class Viewer extends Application {
@Override
public void start(Stage stage) {
// load the image
Image image = new Image("file:" + getParameters().getNamed().get("file"));
...
}
public void caller(String[] args) {
launch(args);
}
/**
* This is a example of the passing a parameters
* @param args the command line arguments
*/
public static void main(String[] args) {
(new Viewer()).caller(new String[]{"--file=path/to/file.jpg"});
}
}
Вы можете просто передать неназванный параметр
Parameters parameters = getParameters();
List<String> unnamedParameters = parameters.getUnnamed();
filePath = unnamedParameters.get(0); // assumes path/to/file.jpg has been passed