将参数传递给JavaFx
我正在尝试使用JavaFx构建一个简单的图像查看器,其工作原理与此类似:将参数传递给JavaFx,java,javafx,Java,Javafx,我正在尝试使用JavaFx构建一个简单的图像查看器,其工作原理与此类似: Viewer viewer = new Viewer("path/to/file.jpg"); 我已经尝试了下面代码中的一些东西,但它不起作用 public class Viewer extends Application { private String filePath; public Viewer(String filePath) { this.filePath = filePath; } @Over
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应用程序传递参数的标准方法?您只需传递一个未命名的参数即可
Parameters parameters = getParameters();
List<String> unnamedParameters = parameters.getUnnamed();
filePath = unnamedParameters.get(0); // assumes path/to/file.jpg has been passed
Parameters=getParameters();
List unnamedParameters=parameters.getUnnamed();
filePath=unnamedParameters.get(0);//假定已传递路径/to/file.jpg
如果我理解您的问题,您已经为应用程序的子类传递了一个或多个参数。类抽象应用程序有一个名为launch的方法,该方法接收字符串[]args。然后您可以为此传递一个参数,例如,String[]{--nameOfParameters=patameters的值“,…}
。获取getParameters().getNamed().get(“参数名称”)
的参数
下面我举一个例子
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"});
}
}
应该可以回答这个问题。在Java 8(以及早期版本中的许多部署样式)中,根本不调用main(…)方法,因此这种方法不起作用。@James_D是的,我同意你的看法。我是测试的唯一例子。事实上,您可以在程序(newviewer())中使用它;启动(新字符串[]{--file=path/to/file.jpg“});