为什么字体名称没有改变? (Java 外汇)

Why is font name not changing? (Java FX)

我遇到了 javafx 标签的问题。无论我在下面的字体构造函数中键入什么字体,编译并 运行 IntelliJ 项目,它都不会更改显示的字体。

 mainLabel.setFont(new Font("Gotham",18));

到目前为止,这是我的 JavaFx 程序:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;
import javafx.scene.text.Font;


public class JavaFXMainWindow extends Application {


    public static void main(String args[]) {


        launch(args);
    }


    public void init() {


    }


    //Program starts here
    public void start(Stage mainStage) {

        //Setting the stage
        mainStage.setTitle("Ping Tool");
        mainStage.setResizable(false);
        mainStage.setFullScreen(false);


        //Creating the root node for all other nodes
        FlowPane rootNode = new FlowPane();


        //Setting the main scene, adding the root node to it and passing dimensions
        Scene mainScene = new Scene(rootNode, 1000, 800);

        //placing the scene on the stage
        mainStage.setScene(mainScene);

        //Setting a label ( no matter what argument I pass to the font it still 
        //shows the same font. The size argument works fine though)

        Label mainLabel = new Label("Please enter IP addresses below:");
        mainLabel.setFont(new Font("Gotham",18));

        //Adding the node to the tree
        rootNode.getChildren().addAll(mainLabel);

        //making the Stage visible
        mainStage.show();
    }


    public void stop() {


    }


}

我可以自信地确认更改行 mainLabel.setFont(new Font("Gotham",18)); 确实会更改显示的字体,至少在我的环境 (BlueJ) 中是这样。您确定要编译以便使用更新的 .class 文件吗?

过去我遇到过类似的字体问题。我的字体没有安装在系统上。在此之后我不得不再做一件事:再次构建项目以刷新应用程序缓存。这为我解决了问题。

你实际上错过了一个论点,你说...

mainLabel.setFont(new Font("Gotham",18));

我觉得应该是这样的,

Panel panel = new Panel();
Graphics g = panel.getGraphics();

Font myFont = new Font("Calibri", Font.PLAIN, 24);
g.setFont(myFont);

请注意 Font.PLAIN、Font.BOLD 应该可以解决问题,但也会针对整个面板进行更改!

不要忘记适当地导入图形 class。