我的程序应该从文件上传图像,然后将其显示为背景。我的问题是,当我Image
在参数中创建对象时,它会询问您要放入的文件。我试图将我的File对象放入其参数内,但无法正常工作。请帮我。我被卡住了
public class FileOpener extends Application{
public void start(final Stage stage) {
stage.setTitle("File Chooser Sample");
final FileChooser fileChooser = new FileChooser();
final Button openButton = new Button("Choose Background Image");
openButton.setOnAction((final ActionEvent e) -> {
File file = fileChooser.showOpenDialog(stage);
if (file != null) {
// openFile(file);
// where my problem is
Image image1 = new Image("file");
// what I tried to do
// Image image1 = new Image(file);
ImageView ip = new ImageView(image1);
BackgroundSize backgroundSize = new BackgroundSize(100, 100, true, true, true, false);
BackgroundImage backgroundImage = new BackgroundImage(image1, BackgroundRepeat.REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.CENTER, backgroundSize);
}
});
final StackPane stac = new StackPane();
stac.getChildren().add(openButton);
stage.setScene(new Scene(stac, 500, 500));
stage.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}
问题在于,的构造函数Image
期望a String url
,而您将其传递给a
File
。任何优秀的IDE都会告诉您给定方法的参数期望值。找到该键盘快捷方式并使用它(IntelliJ中的Ctrl +
P)。从那里开始,您所要做的就是找到一种将a转换File
为String
代表其url的方法。在这种情况下:
Image image1 = new Image(file.toURI().toString());
请注意,您实际上从未设置过背景图片,需要在lambda中添加以下行:
stac.setBackground(new Background(backgroundImage));
但是,为此,您将必须将动作的声明移到stac
动作侦听器的上方。
问题内容: 我的问题是所有使用示例都需要您通过一个阶段。唯一的问题是,我的UI是在文件中定义的,该文件使用与主阶段分离的控制器类。 我该怎么做才能使其正常工作?就像我说的那样,我在控制器类中没有任何阶段的引用,那我该怎么办? 问题答案: 对于场景中的任何节点(例如,根节点;但是注入的任何节点都可以),请执行
我正在尝试编写使用SceneBuilder创建的按钮的功能。我在Scene builder中找到了“Code”部分,并设置了当我单击按钮时将启动的方法的名称(例如fileSelector)。在该方法中,我应该使用FileChooser变量(我需要从PC上获取一个图像并将其保存到一个“file”变量中)。 我复制了示例控制器骨架并将其粘贴到我的controller类中。现在我不知道如何实现该方法,因
我正在尝试将第三方JavaFX应用程序嵌入到更大的Swing应用程序中。要求是它的行为就像是一个非模态子窗口。在JavaFX?中如何从JFXPanel打开模态对话框,对我的工作有所帮助?。 但是窗口排序没有正确设置。可以将子舞台放在父JFrame后面。我不会期望这与子窗口。 使用xprop在Ubuntu 16.04中揭示了X11原子WM_TRANSIENT_FOR仅为子JDialog设置,而不是子
主要内容:打开文件,扩展过滤器,保存文件,示例允许用户导航文件系统并选择一个文件或文件夹。 类位于包中。 打开文件 文件选择器可用作打开文件对话框,用于选择单个文件或多个文件,或作为文件保存对话框。以下代码创建一个对象并设置其标题,然后显示给用户。 可以通过设置和属性来配置文件选择器对话框窗口。 扩展过滤器 可以设置扩展过滤器来确定在文件选择器中打开哪些文件。 保存文件 FileChooser API允许用户为由应用程序保存的文件指定文件名及
我正在开发一个Java应用程序,使用JavaFX作为它的用户界面。 在OSX Mavericks中,当我使用FileChooser类从计算机硬盘加载CSV文件时,该对话框会显示所有文件和文件夹,甚至是隐藏的文件和文件夹,它们会产生大量噪音,很难找到所需的文件。 此屏幕截图说明了我所说的内容: 我认为这可能是一个OS X问题,但我不知道如何修复,至少我不知道如何使用JavaFX FileChoose
我有一个JavaFX按钮,当用户按Enter时触发。这会导致FileChooser打开。有些人(像我一样)可能会在FileChooser中点击Enter来保存文件。但是,这会导致保存按钮再次触发自身并再次打开FileChooser以保存新文件。用鼠标单击按钮(在FileChooser中)没有这个问题。 我以为从按钮中使用事件会解决这个问题,但它只使用GUI事件上的按钮,而不是FileChooser