ComBox 上的事件在 TableView 单元 JavaFx 内?

2023-12-06

我有 TableView,当我的程序启动 TableView 只有一行时,我还有 ComboBoxes 的 ArrayList 并为 TableView 中的每一行创建一个 ComboBox,当用户编辑(产品名称)单元格(其中应包含 ComboBox)程序时创建此单元格的组合框并将组合框设置为单元格图形(当创建组合框时未从单元格图形中删除),并且当用户从最后一行组合框选择项目时,程序必须创建一行,程序对于第一行组合框操作行为正确但第二行失败了,请注意最后一个组合框仅其操作创建了一个附加行,而不是每个组合框,这张照片可以帮助说明我的问题

enter image description here

这是我的代码:

import javafx.application.Application;
    import javafx.beans.property.SimpleStringProperty;
    import javafx.collections.FXCollections;
    import javafx.collections.ObservableList;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.control.ComboBox;
    import javafx.scene.control.TableCell;
    import javafx.scene.control.TableColumn;
    import javafx.scene.control.TableView;
    import javafx.scene.control.cell.PropertyValueFactory;
    import javafx.scene.layout.VBox;
    import javafx.stage.Stage;

    public class BillDesign extends Application
    {
        private final TableView <Products> tableProducts = new TableView();
        private final TableColumn serial = new TableColumn("Serial");
        private final TableColumn productName = new TableColumn("ProductName");
        private final ObservableList <Products> data = FXCollections.observableArrayList(new Products("1", ""),
                                                                                         new Products("2", ""),
                                                                                         new Products("3", ""),
                                                                                         new Products("4", ""));
        private final Button button = new Button("Click");

        @Override
        public void start(Stage stage)
        {
            serial.setEditable(true);
            serial.setCellValueFactory(new PropertyValueFactory("Serial"));

            productName.setEditable(true);
            productName.setCellValueFactory(new PropertyValueFactory("ProductName"));
            productName.setCellFactory(column -> new TableCell ()
            {
                private ComboBox comboBox;

                @Override
                public void startEdit()
                {
                    if(!isEmpty())
                    {
                        super.startEdit();

                        comboBox = new ComboBox();

                        comboBox.setPrefWidth(getWidth());
                        comboBox.setEditable(true);
                        comboBox.getItems().addAll("A", "B", "C");

                        setGraphic(comboBox);

                        comboBox.setOnAction(e ->
                        {
                            data.get(getIndex()).setProductName(comboBox.getSelectionModel().getSelectedItem().
                                                                toString());

                            if(getIndex() == data.size() - 1)
                            {
                                data.add(new Products(String.valueOf(data.size() + 1), ""));
                            }
                        });
                    }
                }
            });

            button.setOnMouseClicked(e ->
            {
                for(int i = 0; i < data.size(); i++)
                {
                    System.out.println("Name " + data.get(i).getProductName() + "\tSerial " + data.get(i).getSerial());
                }
            });

            tableProducts.setEditable(true);
            tableProducts.getColumns().addAll(serial, productName);
            tableProducts.setItems(data);

            VBox root = new VBox(tableProducts, button);
            Scene scene = new Scene(root);

            stage.setScene(scene);
            stage.show();
        }

        public class Products
        {
            private final SimpleStringProperty Serial;
            private final SimpleStringProperty ProductName;

            public Products(String serial, String productName)
            {
                this.Serial = new SimpleStringProperty(serial);
                this.ProductName = new SimpleStringProperty(productName);
            }

            public void setSerial(String serial)
            {
                Serial.set(serial);
            }

            public String getSerial()
            {
                return Serial.get();
            }

            public void setProductName(String productName)
            {
                ProductName.set(productName);
            }

            public String getProductName()
            {
                return ProductName.get();
            }
        }
    }

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ComBox 上的事件在 TableView 单元 JavaFx 内? 的相关文章

  • JavaFx ComboBox 绑定混乱

    我有一个 I18N 实现 它通过属性绑定 JavaFX UI 元素 例如 def translateLabel l Label key String args Any Unit l textProperty bind createStrin
  • javafx中的stackpane和root有什么区别?

    我正在练习javafx做饼图 以下是开发饼图的代码 如果我这样做Group并与StackPane 我发现输出没有区别 我已经评论了组部分 只是徘徊两者之间的区别 import javafx application Application i
  • JavaFX 中的内部框架

    我找到了这个内部框架的例子 http docs oracle com javase tutorial uiswing components internalframe html http docs oracle com javase tut
  • 无法解析符号“javafx.scene.web”

    使用Intellij 2021 3 2 JavaFX版本 11 0 2 1 我正在尝试将 JavaFX WebView 添加到我的应用程序中 我的导入语句无法编译 import javafx scene web 编译错误 java 找不到符
  • 在 JavaFX 中搜索 TableView 列表

    如何在 TableWie 中查找记录 例如通过 ID 并选择创建的行并将其放在 Java 8 JavaFX 中的屏幕中间 您可以使用以下方式搜索元素 int searchId table getItems stream filter ite
  • 如何在 JavaFX 中连接可观察列表?

    我所说的串联是指获得一个新列表 该列表侦听所有串联部分的更改 方法的目的是什么FXCollections concat ObservableList
  • iOS 11 浮动 TableView 标题

    有一个应用程序包含多个部分 展开 时每个部分有几行 折叠 时没有 每个部分都有一个部分标题 使用以下子类重用它们UITableViewHeaderFooterView等等 到目前为止一切顺利 然后在 iOS 11 中 我使用了可视化调试器
  • 如何在 JavaFX 中将 FontAwesome 升级到版本 5

    我有一个使用 FontAwesome 图标的 JavaFX 我想使用新版本 5 但似乎已经不起作用了 这是一个用 Groovy 编写的简单演示应用程序 可与旧版 FontAwesome 一起使用 import javafx applicat
  • 如何从 JavaFX 中的另一个控制器类访问 UI 元素?

    我有一个使用 NetBeans 8 编写的 JavaFX Java 8 应用程序 没有SceneBuilder 我的应用程序有一个主窗口 该窗口有自己的 FXML 文件 primary fxml 和自己的控制器类 FXMLPrimaryCo
  • Javafx 从 TextField 获取输入

    这是我当前的代码 它所做的只是为我制作的计算器设置一个 GUI 界面 我希望用户输入两个值 然后当按下 Sum 按钮时 它将两个值加在一起并将其显示在 Sum 文本字段中 我正在尝试使用 JavaFX 如果您能提供一些帮助 我将不胜感激 i
  • 标签文字位置

    我有一个带有图像和文本的标签 final Label label new Label labelText label setTextAlignment TextAlignment CENTER ImageView livePerformIc
  • WPF DataGridTemplateColumn 组合框更新所有行

    我有这个 XAML 它从 ItemSource 是枚举的组合框中选择一个值 我使用的教程是 http www c sharpcorner com uploadfile dpatra combobox in datagrid in wpf h
  • 我们可以像 swing JSplitPane 一样在 Javafx SplitPane 上添加 OneTouchExpansable 按钮吗

    我可以在 JavaFX 上使用 css java api 库添加 OneTouchExpandable 按钮吗SplitPane Swing 中已经存在此选项JSplitPane 但我在 JavaFX API 上找不到该选项 我想 我们可以
  • 为什么 JavaFX API 不包含在 Java 8 J2SE 中? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有谁知道为什么 JavaFX 8 仍然不是即将推出的 Java 8 中的日常 J2SE API 显示所有 Java 组件的技术图清楚地将 Jav
  • Hibernate + SQLite 不创建数据库

    这是我的问题 我有一个使用 JavaFX Hibernate SQLite 的桌面应用程序 这是我的模型 Entity Table name usuario public class Usuario implements AbstractM
  • 从 MS Access 中提取 OLE 对象(Word 文档)

    我有一个 Microsoft Access 数据库 其中包含一个包含 Microsoft Word 文档的 OLE 对象字段 我试图找到代码来检索保存在 OLE 对象中的文件 以便用户可以从我的 JavaFx 应用程序中的按钮下载它 但没有
  • JavaFX颜色选择器的语言

    有没有办法改变语言ColorPicker的文本 例如 自定义颜色 当前颜色 新颜色 色相 饱和度 亮度 不透明度 保存 使用 取消 编辑 以下答案适合那些需要更多内容的人exotic语言 如果您使用其中之一 de es fr it ja k
  • 如何从表列javafx中删除行

    这些是我的表格列 Course and 描述 如果单击一行 该行变为 活动 突出显示 并且他们按下Delete按钮它应该删除该行 我该怎么做 我的代码Course列 以及我要添加什么事件侦听器到我的delete按钮 SuppressWarn
  • 根据 Swift 中的列表选择在 ViewController 之间传递值

    我试图将 listView 选择的选定索引号从一个 ViewController 传递到另一个 ViewController 但遇到了 tableView didSelectRowAtIndexPath 委托运行时间稍晚于prepareFo
  • C# - 如何防止组合框中的鼠标滚轮滚动?

    我有一个组合框 我想阻止用户使用鼠标滚轮滚动项目 有没有简单的方法可以做到这一点 C VS2008 Use the 鼠标滚轮 http msdn microsoft com en us library system windows form

随机推荐

  • C# 可以通过管道传输吗?

    我正在尝试使用 TCP 和简单的文本命令来控制网络上的程序 我最终可能会切换到二进制数据 但是 我想知道是否有一种方法可以对程序发送的数据进行编码并通过网络发送 然后对其进行解码并将其提供给接收程序 我当前的代码如下 但我正在尝试找到一种比
  • 比较时间戳与日期变量(MySQL 和 PHP)

    非常感谢任何帮助 假设我有一个 MySQL 数据库 其中时间戳列的值为 1305590400 我如何将其与 PHP 变量 2011 05 17 进行比较 我想完全忽略时间部分 只比较日期 目前我正在尝试让它与以下内容一起工作 但它没有返回结
  • Win32 CRITICAL_SECTION 包含什么?

    Win32 CRITICAL SECTION 包含哪些数据 它有多大 这是没有记录的 大概是特定于实现的 但我很想知道 这是我安装的 Windows Vista SDK 的结果 WinNT h typedef struct RTL CRIT
  • 将 wsHttpBinding 转换为 customBinding

    如何将以下 wsHttpBinding 转换为 customBinding 我需要这样做 这样我就可以增加时钟偏差 这是针对http的
  • 如何获取Windows负载值[重复]

    这个问题在这里已经有答案了 我想使用 Java 从 Windows 获取有关 CPU RAM HDD 网络和进程 服务 列表的数据 如何在不使用第三方库或 JNI 的情况下获取这些系统值 Windows 中是否有类似于 proc 的东西 我
  • 如何绘制具有径向渐变的扇形(iphone)

    如何在 Objective c Core Graphics 中绘制具有径向渐变的扇形 实心圆弧 我用 CGContextDrawRadialGradient 但它画了圆圈 如果你告诉我如何通过径向渐变填充任何形状 那就太好了 谢谢 添加定义
  • 防止 WooCommerce 优惠券堆叠在购物车和结帐页面上

    我需要防止两个特定的优惠券一起使用 我成功地实现了这段代码 它可以防止将这些优惠券堆叠在cart page add action woocommerce before cart check coupon stack function che
  • 使用 json 序列化的 void 函数 swift 4 中出现意外的非 void 返回值

    我目前正在尝试通过编写可以多次使用的通用函数来清理项目上的代码 但是我需要我的函数返回一个数组 我的错误是 void 函数中出现意外的非 void 返回值 这是我的代码 func JSONSerialisation JsonUrl Stri
  • Mysql 空间索引未使用

    我正在寻找能够找到从点到点给出的近似匹配的行 假设在 20 米内 它可以工作 但它不使用索引 我试图利用该表上的空间索引 但似乎没有使用它 解释命令给我 possible keys null 具有以下内容 mysql 5 7 17 tabl
  • 如何在两个地方获取锁,但在一个地方释放锁?

    我是 C 新手 我需要在两种方法中获取锁定 但在一种方法中释放 那行得通吗 public void obtainLock Monitor Enter lockObj public void obtainReleaseLock lock lo
  • 改进并行计算的内存布局

    我正在尝试使用 C AMP 优化用于并行计算的算法 Lattice Boltzmann 并寻找一些优化内存布局的建议 刚刚发现将一个参数从结构中删除到另一个向量 阻塞向量 中可以增加约 10 有人有任何可以进一步改善这一点的建议 或者我应该
  • Android:按下“后退”按钮时提示用户保存更改

    我有一个包含多个用户可编辑项目 EditText 字段 RatingBar 等 的活动 如果按下后退 主页按钮并且已进行尚未保存的更改 我想提示用户 读完android文档后 似乎这段代码应该放在onPause方法中 我尝试在 onPaus
  • 应用程序、域和基础设施层 (DDD) 中的存储库实现

    我有一个这样的项目结构 Here IApplicationDbContext cs接口定义在Application层及其实现是在Infrastructure层 类似地 对于名为 IRepository 的通用存储库 我对在哪里实施特定存储库
  • pandas 风格背景渐变行和列

    The 熊猫风格选项添加背景渐变非常适合快速检查我的输出表 但是 它可以按行或按列应用 是否可以将其立即应用于整个数据框 编辑 一个最小的工作示例 df pd DataFrame 3 2 10 4 20 1 3 2 5 4 6 1 df s
  • oauth、python 和 google API?

    使用Python验证谷歌API的最佳方法 1 认证 2 验证子 有没有oauth2 o python google的教程 你可以试试 https bitbucket org smartproject oauth2python 它是经过充分测
  • WindowsFormsHost 控件上的 ContextMenu

    因此 我的 WPF 应用程序中有一个 WindowsFormsHost 控件 托管 Dundas Chart 并且我想在其上放置一个 ContextMenu 我可以成功地将 ContextMenu 附加到任何普通的 WPF 控件 但它不适用
  • python中的Errno 10061,我不知道该怎么办

    我在Python中学习了套接字 当我尝试在一台计算机上编写套接字脚本时 它起作用了 但是当我尝试使用两台不同的计算机编写套接字脚本并打开连接的套接字时 它不起作用 一台电脑 服务器 import socket s socket socket
  • 如何使用 bash 脚本中的文档转换服务转换多个文档?

    如何使用以下命令转换多个文档文件转换服务 我有 50 100 个 MS Word 和 PDF 文档 我想使用convert documentAPI方法 例如 您可以提供多个 pdf 或 doc 文件吗 curl u username pas
  • “JSON 标准只允许一个顶级值”是什么意思?

    在我的 IntelliJ 编辑器中 我有一个 test json 文件 如下所示 第二条 json 记录显示一条错误消息 Json 标准仅允许一个顶级值 但这是一个有效的 JSON 文件 对吗 如何摆脱这个烦人的消息 reviewerID
  • ComBox 上的事件在 TableView 单元 JavaFx 内?

    我有 TableView 当我的程序启动 TableView 只有一行时 我还有 ComboBoxes 的 ArrayList 并为 TableView 中的每一行创建一个 ComboBox 当用户编辑 产品名称 单元格 其中应包含 Com