从一个组合框中选定的项目如何更改第二个组合框中的特定项目?

2024-01-10

Combobox1 有 3 个项目(西班牙、法国、英国),Combobox2 有 6 个项目(巴塞罗那、马德里、巴黎、马赛、伦敦、布里斯托尔)。 当从 Combobox1(西班牙)中选择一个项目时,它应该可用于 Combobox2 的特定项目(巴塞罗那、马德里)。

谁能帮我这个?

提前致谢


三个组合框监听器示例代码。我认为这个解决方案对您有用。

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package threecombobox;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

/**
 *
 * @author reegan
 */
public class ThreeComboBox extends Application {

    @Override
    public void start(Stage primaryStage) {

        List combox1List = new ArrayList();
        for (int i = 1; i < 10; i++) {
            combox1List.add(i);
        }

        final Map combox2Map = new HashMap();

        for (int i = 0; i < combox1List.size(); i++) {
            List l = new ArrayList();
            for (int j = 1; j < 10; j++) {
                int k = (int) combox1List.get(i) * 10 + j;
                l.add(k);
            }
            combox2Map.put(combox1List.get(i), l);
        }
        final Map combox3Map = new HashMap();
        for (Object o : combox1List) {
            for (Object o1 : (List) combox2Map.get(o)) {
                List l = new ArrayList();
                for (int i = 1; i < 10; i++) {
                    int value = (int) o1 * 10 + i;
                    l.add(value);
                }
                combox3Map.put(o1, l);
            }
        }
        ObservableList combox1 = FXCollections.observableList(combox1List);
        HBox box = new HBox(20);
        box.setPadding(new Insets(20, 20, 20, 20));
        ComboBox cb1 = new ComboBox();
        final ComboBox cb2 = new ComboBox();
        final ComboBox cb3 = new ComboBox();
        cb1.setItems(combox1);
        cb1.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
            @Override
            public void changed(ObservableValue ov, Object t, Object t1) {
                ObservableList combox2 = FXCollections.observableArrayList((List) combox2Map.get(t1));
                cb2.setItems(combox2);
            }
        });

        cb2.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
            @Override
            public void changed(ObservableValue ov, Object t, Object t1) {
                if (t1 != null) {
                    ObservableList combox3 = FXCollections.observableArrayList((List) combox3Map.get(t1));
                    cb3.setItems(combox3);
                }
            }
        });
        box.getChildren().addAll(cb1, cb2, cb3);
        Scene scene = new Scene(box, 300, 250);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    /**
     * The main() method is ignored in correctly deployed JavaFX application.
     * main() serves only as fallback in case the application can not be
     * launched through deployment artifacts, e.g., in IDEs with limited FX
     * support. NetBeans ignores main().
     *
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从一个组合框中选定的项目如何更改第二个组合框中的特定项目? 的相关文章

  • 在组合框中设置所选项目 - vb.net

    我正在使用此代码向与显示的不同的组合框添加一个值 如何为组合框项目添加值 https stackoverflow com questions 1887388 how to add value to combobox item 假设我的组合框
  • 更改JavaFX TableView字体大小[重复]

    这个问题在这里已经有答案了 您好 我想在表视图列内的文本上设置字体 我如何用 Java 做到这一点 这是我的代码 感谢帮助 private final TableView
  • JavaFX:setWrapText(true) (WordWrap) 在 ListView 中不起作用

    在 ListView Cell 中激活 WordWrap 时 文本不会换行 这是一个例子 public class ListBug extends Application public static void main String arg
  • 如何调整Javafx未装饰阶段的大小?

    我是JavaFX技术的新手 目前我正在开发javafx应用程序 其中有未装饰的阶段 我能够使用下面的代码将其移动到屏幕上 但我是无法从右下角调整此窗口的大小 任何人都可以建议我解决方案 public void loadPanel final
  • Javafx 可拆卸窗格系统

    这是我在几个不同的软件中看到的我喜欢的东西 我不知道它来自哪里 也不知道它的真正名称是什么 但这里是 Visual Studio 中的窗格系统的示例 请注意我如何轻松地将窗格固定在任何地方 Javafx 可以实现这样的事情吗 我知道这个问题
  • 如何在 Java FX 中以编程方式模拟箭头键按下

    我想让我的 JFX 应用程序模拟箭头键按下 当它们在 TextField 中注册时 但我不知道如何发送字符串或字节以外的任何内容 我正在想象这样的事情 static EventHandler
  • ComboBox.SelectedValue 未从绑定源更新

    这是我的绑定源对象 Public Class MyListObject Private mylist As New ObservableCollection Of String Private selectedName As String
  • 使用translateX()和translateY()时,窗格布局内的JavaFX文本与其他元素重叠

    下图是对正在发生的情况的描述 我有一个Pane其中包含一个Text我正在使用下面的代码来制作marquee like effect of the Text 所以当Pane没有足够的空间来显示文本 动画正在开始 文本必须来回移动 以便用户可以
  • 如何在 JavaFX 中设置滚动窗格的单位增量?

    The 滚动条 http docs oracle com javafx 2 api javafx scene control ScrollBar htmlJavaFX 中的类包含一个用于设置单位增量的属性 这就是我所追求的 但是我找不到如何
  • 如何右对齐 Javafx 工具栏中的按钮

    我正在使用 Java FX 场景生成器构建 UI 并且希望工具栏中的按钮浮动到工具栏的右侧 我尝试更改父级 工具栏 和按钮的节点方向 但两者似乎都被忽略 添加一个没有内容的窗格 该窗格始终会增长以适应工具栏中左对齐工具和右对齐工具之间的可用
  • JFrame 中的 JavaFX 菜单

    我想在 JFrame 中使用 JavaFX 菜单 我使用 JFXPanel 嵌入它 并且它在 JFrame 中可见 但是 问题是 菜单项不响应鼠标 我可以单击菜单 但不能单击菜单项 如果我使用键盘选择 MenuItem 并按 Enter 键
  • javafx android 中的文本字段和组合框问题

    我在简单的 javafx android 应用程序中遇到问题 问题是我使用 gradle javafxmobile plugin 在 netbeans ide 中构建了非常简单的应用程序 其中包含一些文本字段和组合框 我在 android
  • JavaFX 中画布的最大尺寸

    有谁知道JavaFX中画布的最大尺寸 从一些测试来看 它似乎是 8192 与 IE 相同 在我看来 这很奇怪 或许 可以修改吗 这可能取决于您的显卡的最大纹理大小 因为我相信 使用最常见的硬件加速渲染管道 画布最终将表示为纹理 我不太清楚
  • Java 8 Eclipse 未设置根错误

    最近 我为 JavaFX 应用程序安装了 Java 8 build 124 并且开始收到以下错误 javafx fxml LoadException Root hasn t been set Use method setRoot befor
  • 无法填充在 SceneBuilder 2 中创建的 JavaFX TableView

    我正在尝试重新创建表视图示例 http docs oracle com javafx 2 ui controls table view htm使用场景生成器 2 但无法填充我的 TableView 我在 JavaFx SceneBuilde
  • javafxports 项目内的 FXML 文件

    我正在查找有关 javafxports 技术的信息 我可以在该项目中使用 FXML 文件吗 这是我的 build gradle buildscript repositories jcenter dependencies classpath
  • JavaFX 图表自动缩放错误且数字较低

    我正在使用 JavaFX 构建 StackedBarChart 随着新数据的进入 图表将发生变化 我使用更新图表的按钮来模拟这一点 它大部分工作正常 但我注意到 当我第一次更新图表时 如果值较低 值小于 100 Y 轴标签似乎有点偏离 更奇
  • JavaFX LineChart:在图表中间插入新数据

    我正在使用带有 JavaFX 的折线图 LineChart
  • Java:作为 JAR 运行时的文件路径

    我有一个 Java JavaFX 项目 我在其中使用样式表 样式表中的图像将按如下方式加载 pane fx background image url packagename image jpg 当我从 Eclipse 或 Scenebuil
  • 如何创建具有同等时间元素的 JavaFX 转换?

    我正在尝试 JavaFX 和动画 尤其是PathTransition 我正在创建一个简单的程序 使球 弹跳 而不使用QuadCurveTo班级 到目前为止 这是我的代码 Ellipse ball new Ellipse 375 250 10

随机推荐