为什么字体名称不变? (Java FX)

时间:2017-12-30 21:52:55

标签: java javafx intellij-14

我遇到了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() {


    }


}

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

你实际上错过了一个你说...的论据。

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应该可以做到这一点,但也可以为整个面板更改它!

不要忘记适当地导入Graphics类。