我如何将图像附加到按钮而不是在 JavaFX 中设置文本? [无 FXML]
How can i attach an image to a button instead of setting a text in JavaFX? [NO FXML]
我是 JavaFX 的新手,我目前正在做一个项目(我不能在其中使用 fxml)。
我想创建一个显示图像的按钮,例如搜索图标。
我会提供一张图片来具体说明:
有什么建议吗?提前致谢!
您在问题中写道...
I am new to JavaFX
那我建议找个教程。我认为这比在这里发布问题要好,您可以在好的教程中找到答案。我推荐 this one.
以下代码在您链接到的图像中生成 GUI。请注意,包含图像 search.png 的文件必须位于与文件 ButonImg.class
相同的目录中,即编译以下代码时创建的文件.我建议阅读下面代码中 [JavaFX] 类 和方法的 javadoc 以了解它们的工作原理。 javadoc 可在线获取,可以通过搜索轻松找到,例如,如果您搜索单词 javafx hbox
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
public class ButonImg extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Label label = new Label("City");
TextField txtFld = new TextField();
Button button = new Button();
Image img = new Image(getClass().getResourceAsStream("search.png"));
ImageView imgView = new ImageView(img);
button.setGraphic(imgView);
HBox root = new HBox(10.0d, label, txtFld, button);
root.setPadding(new Insets(20.0d, 20.0d, 20.0d, 20.0d));
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
}
/**
* Start here.
*/
public static void main(String[] args) {
launch(args);
}
}
这是 运行 上述代码时显示的 GUI 图像。
我是 JavaFX 的新手,我目前正在做一个项目(我不能在其中使用 fxml)。 我想创建一个显示图像的按钮,例如搜索图标。 我会提供一张图片来具体说明:
有什么建议吗?提前致谢!
您在问题中写道...
I am new to JavaFX
那我建议找个教程。我认为这比在这里发布问题要好,您可以在好的教程中找到答案。我推荐 this one.
以下代码在您链接到的图像中生成 GUI。请注意,包含图像 search.png 的文件必须位于与文件 ButonImg.class
相同的目录中,即编译以下代码时创建的文件.我建议阅读下面代码中 [JavaFX] 类 和方法的 javadoc 以了解它们的工作原理。 javadoc 可在线获取,可以通过搜索轻松找到,例如,如果您搜索单词 javafx hbox
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
public class ButonImg extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Label label = new Label("City");
TextField txtFld = new TextField();
Button button = new Button();
Image img = new Image(getClass().getResourceAsStream("search.png"));
ImageView imgView = new ImageView(img);
button.setGraphic(imgView);
HBox root = new HBox(10.0d, label, txtFld, button);
root.setPadding(new Insets(20.0d, 20.0d, 20.0d, 20.0d));
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
}
/**
* Start here.
*/
public static void main(String[] args) {
launch(args);
}
}
这是 运行 上述代码时显示的 GUI 图像。