Javafx如何在背景图上设置按钮

2025-11-01 19:19:56

1、布局文件 jianshu.xml

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>

<?import javafx.scene.layout.AnchorPane?>

<AnchorPane xmlns="http://javafx.com/javafx/8.0.121" 

            xmlns:fx="http://javafx.com/fxml/1"

            fx:controller="com.soft1841.sample5.JianShuController">

    <Button fx:id="testBtn"  text="测试按钮"

            AnchorPane.leftAnchor="200" 

            AnchorPane.topAnchor="100" />

</AnchorPane>

2、样式表文件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;

}

3、主程序 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);

    }

}

4、控制器文件 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如何在背景图上设置按钮

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢