簡體   English   中英

為什么我的按鈕圖像setGraphic方法沒有顯示?

[英]Why is my Button Image setGraphic method not being displayed?

我的bin文件夾中有圖像文件,但是當我運行程序時,我所擁有的只是按鈕選項,這些選項不會被圖像替換。 我認為這與文件有關:在圖像前面,但我不確定。 圖像實際上不是移動的gif(不知道為什么稱其為gif)。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class Project4 extends Application {

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

    public void start(Stage primaryStage) throws Exception {

        HBox root = new HBox();

        Button btnKings;
        Button btnDucks;
        Button btnSharks;
        Button btnBlues;

        btnKings = new Button("Kings");
        btnDucks = new Button("Ducks");
        btnSharks = new Button("Sharks");
        btnBlues = new Button("Blues");

        Image imgKings = new Image("file:kings.jpg");
        btnKings.setGraphic(new ImageView(imgKings));

        Image imgDucks = new Image("file:ducks.gif");
        btnDucks.setGraphic(new ImageView(imgDucks));

        Image imgSharks = new Image("file:sharks.gif");
        btnSharks.setGraphic(new ImageView(imgSharks));

        Image imgBlues = new Image("file:blues.gif");
        btnBlues.setGraphic(new ImageView(imgBlues));

        HandleButtonClick clickEvent = new HandleButtonClick();
        btnKings.setOnAction(clickEvent);

        btnDucks.setOnAction(new HandleButtonClick("You clicked the ducKS!"));
        btnKings.setOnAction(new HandleButtonClick("You clicked the Kings"));
        btnSharks.setOnAction(new HandleButtonClick("You clicked the sharks"));
        btnBlues.setOnAction(new HandleButtonClick("You clicked the blues"));

        root.getChildren().add(btnKings);
        root.getChildren().add(btnDucks);
        root.getChildren().add(btnSharks);
        root.getChildren().add(btnBlues);

        Scene scene = new Scene(root, 960, 130);
        primaryStage.setTitle("HockeyButtons");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

我不知道如何用圖片替換單詞按鈕
Nghia Duong

如果只想在按鈕上顯示圖像,而只顯示文本,則應創建不帶文本的按鈕。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class Project4 extends Application {

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

    public void start(Stage primaryStage) throws Exception {

        HBox root = new HBox();

        Button btnKings;
        Button btnDucks;
        Button btnSharks;
        Button btnBlues;

        btnKings = new Button();
        btnDucks = new Button();
        btnSharks = new Button();
        btnBlues = new Button();

        Image imgKings = new Image("kings.jpg");
        btnKings.setGraphic(new ImageView(imgKings));

        Image imgDucks = new Image("ducks.gif");
        btnDucks.setGraphic(new ImageView(imgDucks));

        Image imgSharks = new Image("sharks.gif");
        btnSharks.setGraphic(new ImageView(imgSharks));

        Image imgBlues = new Image("blues.gif");
        btnBlues.setGraphic(new ImageView(imgBlues));

        root.getChildren().add(btnKings);
        root.getChildren().add(btnDucks);
        root.getChildren().add(btnSharks);
        root.getChildren().add(btnBlues);

        Scene scene = new Scene(root, 960, 130);
        primaryStage.setTitle("HockeyButtons");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

在這里,您顯示的圖像路徑不正確。

Image imgKings = new Image("file:kings.jpg");

您最好顯示絕對路徑,或者如果圖像位於classpath文件夾中,則通過以下方式:

String absolutePathToIcon =
                getClass().getResource("kings.jpg").toExternalForm();
Image imgKings = new Image(absolutePathToIcon);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM