为什么字体名称没有改变? (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。
我遇到了 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。