实际上,我已经为第 n 天的字体大小而苦恼了。情况如下:我在常规 AnchorPane 中添加了一个常规按钮,并将所有锚点设置为 30。现在,当我调整窗口大小时,按钮的大小会发生变化。但是字体大小没有变化!我已经尝试过以下选项。
- 我将侦听器附加到控件的大小,并根据高度和宽度值更改字体大小。但是这里的问题是,当你减小窗口的大小时,字体已经变成了一定的大小并且不允许 Control'y 减小,因此它本身就变得不可减少。
- 然后我尝试使用 JFXtras 中的 ScalableContentPane,但在 SceneBuilder 中无法制作 GUI 的事实存在差距,因为 为了使该对象正常工作,您需要向其 ContentPane 中添加子项,而不是向其添加子对象,该对象是在这样的代码中获得的
new ScalableContentPane().getContentPane
,并且它还奇怪地改变了它的大小,看起来马马虎虎......
这样的事情......我正在等待您的建议和解决方案,如果有不清楚的地方 - 写,我会澄清。这是代码以防万一...
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
public class FontSample extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
AnchorPane anchorPane = new AnchorPane();
anchorPane.setPrefSize(900, 700);
Button button = new Button("MrButton");
AnchorPane.setTopAnchor(button, 30.0);
AnchorPane.setRightAnchor(button, 30.0);
AnchorPane.setBottomAnchor(button, 30.0);
AnchorPane.setLeftAnchor(button, 30.0);
anchorPane.getChildren().add(button);
primaryStage.setScene(new Scene(anchorPane));
primaryStage.show();
}
}
总的来说,我找到了绕过第1点问题的方法。这是代码
在那里,当然,您可以自己选择计算字体大小的公式,但是这个公式很匆忙地出现在我面前,如果你再累一点,你几乎可以做任何你想做的事情......