JavaFX按钮添加图标的方法

  • 布局文件 jianshu.xml




    
  • 样式表文件jianshu.css
#testBtn{
    -fx-text-fill:#FFFFFF;
    -fx-background-color: rgb(202,48,43);
    -fx-border-color: rgb(202,48,43);
    -fx-border-radius: 20;
    -fx-background-radius: 20;
    -fx-pref-width: 100px;
    -fx-pref-height: 35px;
    -fx-padding: 6 6 6 6;
}
  • 主程序 JianShuApp.java
package com.soft1841.sample5;

import com.soft1841.sample4.SingerApp;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.stage.Stage;

import java.net.URL;

public class JianShuApp  extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        URL location = getClass().getResource("jianshu.fxml");
        FXMLLoader fxmlLoader = new FXMLLoader(location);
        Parent root = fxmlLoader.load();
        Scene scene = new Scene(root, 800, 600);
        scene.getStylesheets().add(JianShuApp.class.getResource("jianshu.css").toExternalForm());
        primaryStage.setTitle("");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}


  • 控制器文件 JianShuController.java
package com.soft1841.sample5;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import java.net.URL;
import java.util.ResourceBundle;

public class JianShuController implements Initializable {
    @FXML
    private Button testBtn;
    
    @Override
    public void initialize(URL location, ResourceBundle resources) {
        Image btnImg = new Image("/img/heart.png");
        ImageView imageView = new ImageView(btnImg);
        //给按钮设置图标
        testBtn.setGraphic(imageView);
    }
}

  • 运行效果


    效果图

你可能感兴趣的:(JavaFX按钮添加图标的方法)