java - 如何在 Java FX 中创建可滚动的“下拉”复选框?
问题描述
我是 JavaFX 的新手,我正在尝试创建检查项目的“下拉列表”。我正在尝试使下拉菜单可滚动。我可以使用 ComboBox 轻松完成此操作(使用 setVisibleowCount(int)),但 ComboBox 仅允许在关闭对话之前选择 1 个项目,并且似乎不是要使用的正确对象。
我目前正在使用带有 CheckMenuItems 的菜单按钮。ListView 似乎很有用,但我不太确定如何集成它。如果有人可以提供帮助,那就太好了。谢谢。
解决方案
由于您不能使用 CheckComboBox,我会看看 Accordion + TitledPane 是否适合您的工作。
这是一个例子:
public class Main extends Application {
@Override
public void start(Stage stage) throws Exception{
VBox root = new VBox();
root.getChildren().add(new Label("Select Number of Checkboxes you feel like clicking"));
VBox vBox = new VBox();
for (int i = 0; i < 5; i++)
vBox.getChildren().add(new CheckBox("i:" + i));
ScrollPane scrollPane = new ScrollPane(vBox);
//Easily changeable Max Height
scrollPane.setMaxHeight(10);
// Create TitledPane.
TitledPane titledPane = new TitledPane("Check Boxes", scrollPane);
//Add to Accordion
Accordion accordion = new Accordion(titledPane);
//Add to root VBox
root.getChildren().add(accordion);
root.getChildren().add(new Label("Some Other Content"));
stage = new Stage();
stage.setHeight(200);
stage.setScene(new Scene(root));
stage.setAlwaysOnTop(true);
stage.show();
}
public static void main(String[] args) { launch(args); }
}
推荐阅读
- azure - 从服务总线主题中窥视锁定多条消息
- session - HttpContext.Session.GetString("string"), 随机我得到 Session has not been configured for this application or request exception
- symfony - PHPUnit 返回 0 个被覆盖的方法
- ios - iOS 中日期选择器小部件的变化?
- c# - 具有依赖注入的 C# 抽象类
- lua - 使用循环解决如果数字 < 超过 200 个先前的数字,则返回 1
- xml - InDesign XML 导入:如何使用样式组?
- html - 使用jquery将数据动态附加到表中,下载时只会得到一行
- asp.net - Asp.Net Core 客户端验证不起作用
- javascript - 回调跳过了一部分