java - 在 JavaFX 中更改窗口大小后组合框下拉宽度出现问题
问题描述
我正在开发一个 Java 应用程序,该应用程序在窗口大小更改后会更改组件大小,并且我遇到了 ComboBox 下拉菜单的问题。窗口大小更改后,首先扩展下拉列表不会改变它的宽度,我明白了。当我第二次展开列表时,它运行良好,但仅当我使用以下代码时:
comboBoxWindowSize.setCellFactory(new Callback<ListView<WindowSize>, ListCell<WindowSize>>() {
@Override
public ListCell<WindowSize> call(ListView<WindowSize> param) {
ListCell cell = new ListCell<WindowSize>() {
@Override
public void updateItem(WindowSize windowSize, boolean empty) {
super.updateItem(windowSize, empty);
setPrefHeight(padH25);
getListView().setPrefWidth(padW150);
if (!empty) {
setText(windowSize.toString());
} else {
setText(null);
}
}
};
return cell;
}
});
当我不使用此代码时,宽度始终不正确。我希望下拉宽度等于 ComboBox 宽度。你会帮我解决这个问题吗?
解决方案
好的,我找到了答案。这很丑陋,但它确实有效。就像我上面说的,它的大小仅在第一次扩展时是不正确的。所以我所要做的就是在我更改窗口大小后以编程方式展开和折叠它:
comboBoxWindowSize.show();
comboBoxWindowSize.hide();
就这样。
推荐阅读
- android - 无法解析自动完成或名称解析 Places API PlaceAutocomplete: Status{statusCode=PLACES_API_ACCESS_NOT_CONFIGURED, resolution=null}
- google-chrome - chrome 扩展 chrome.storage.local 默认设置
- dart - 获取包时出现“此处不允许映射值”错误
- sql-server - ALTER/CREATE 在事务中阻塞并使用环回链接服务器
- android - 如何使用外部视频播放器启动视频网址?
- linux - 无法使用eclipse调试c程序linux
- javascript - Display all pupil data from object property of school class
- reactjs - 如何在 React Typescript 中使用带有 @reach/router 的 react-pose?
- python - How to handle a KeyError when working with a list inside a list
- javascript - 查看 2 次是否与 moment.JS 重叠