javafx - 调整窗口大小时,JavaFX ColumnConstraint minWidth 被忽略,使用 preWidth
问题描述
我错误地认为在为基于 JavaFX 的应用程序调整窗口大小时,应该使用为列宽约束配置的最小大小而不是首选大小?
该程序非常简单,来自一本书:JavaFX 9 By Example,在 Eclipse 中使用 JavaFX 15 进行了一些小的更改。
首先是一张显示预期结果的图片。我已将 fxml ColumnConstraints prefWidth值设置为 50,这与minWidth相同。
现在,启动同一个应用程序,只需进行一次更改:prefWidth设置为 150 而不是 50。当使用鼠标缩小水平窗口大小时,您可以看到应用程序没有使用minWidth设置(minWidth 没有更改)。我没有将水平线缩小到最小,以使内容被剪裁在视觉上更加明显。
以下是该项目中的两个附加类(我正在跳过显示模块信息)。但我认为这里没有任何东西会影响问题的要点。
package com.jfxbe;
import java.io.IOException;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class FXMLContactFormX extends Application {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Application.launch(args);
}
@Override
public void start(Stage stage) {
stage.setTitle("FXMLContactForm ");
Parent root = null;
try {
root = FXMLLoader.load(getClass().getResource("ContactFormX.fxml"));
} catch (IOException e) {
e.printStackTrace();
}
Scene scene = new Scene(root, 380, 150, Color.WHITE);
stage.setScene(scene);
stage.setMinWidth(200);
stage.setMinHeight(150);
stage.show();
}
}
package com.jfxbe;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
public class ContactFormXController {
@FXML private TextField firstNameField;
@FXML private TextField lastNameField;
@FXML private Button saveButton;
@FXML
protected void saveContactAction(ActionEvent event) {
System.out.println("Saving the following information: ");
System.out.println("First Name: " + firstNameField.getText());
System.out.println(" Last Name: " + lastNameField.getText());
}
}
我是否遗漏了列约束的工作方式?是否有文档解释了minWidth被忽略或不被忽略的情况?
解决方案
推荐阅读
- android - 列出所有小部件 android
- mysql - 我如何将 NEAR 与 MySQL 和 JPA 一起使用
- python - 如何通过 Http 请求向 jupyter 终端发送命令?
- python - 当我使用 exec() 在 python 3 中调用函数时出现错误
- reactjs - 如何在 Draft.js 中插入 HTML?
- r - 砰砰(!!)显然不能在ggplot2中工作
- ruby-on-rails - 正确访问键和值以处理多条记录
- kotlin - 包裹在堆栈窗格中时图像不会显示 (tornadoFX)
- javascript - 如何使我的搜索功能不区分大小写?
- websphere-liberty - SQLMX/IBM-liberty-datasource:未找到有效的 jdbc 驱动程序