如何基于 ComboBox 中的 SELECT 项构建 tableview

如何解决如何基于 ComboBox 中的 SELECT 项构建 tableview

我正在尝试创建一个根据组合框中所选项目而变化的表格视图。我有 tableview 结构,combobox 可以工作,但是我在尝试使两者之间的连接正常工作时迷失了方向。我对它可能是什么有一些潜在的想法(所以我将把它复制到 //'d out 的代码中)。任何帮助将不胜感激。希望得到解释,以便我理解其中的逻辑以及我没有理解的内容。

目标是从组合框中选择一个客户,然后更新 tableview 以显示他们个人下的所有订单。我的数据库在 MySql 中,我将在下面包含到目前为止我拥有的 sql 脚本。

public void createCustomerInfoReportScene(Stage primaryStage) {
        Label titleLBL = new Label("Customer Information");

        final ComboBox customerCB = new ComboBox();
        CapestraDB myDB = new CapestraDB();
        customerCB.setItems(myDB.getCustomerNameList());
        customerCB.setPromptText("Select Customer");

        Label customerLBL = new Label("Customer Name:");
        Label idLBL = new Label("ID: ");
        TextField IDTF = new TextField();
        Label firstNameLBL = new Label("First Name:");
        TextField firstNameTF = new TextField();
        Label lastNameLBL = new Label("Last Name: ");
        TextField lastNameTF = new TextField();
        Label addressLBL = new Label("Address: ");
        TextField addressTF = new TextField();
        Label cityLBL = new Label("City: ");
        TextField cityTF = new TextField();
        Label stateLBL = new Label("State: ");
        TextField stateTF = new TextField();
        Label zipLBL = new Label("Zip code: ");
        TextField zipTF = new TextField();
        Label phoneLBL = new Label("Phone: ");
        TextField phoneTF = new TextField();
        Label emailLBL = new Label("E-mail: ");
        TextField emailTF = new TextField();

        customerCB.setOnAction(e -> {
            Customer cus = myDB.getCustomer((String) customerCB.getValue());
            IDTF.setText(String.valueOf(cus.getId() + ""));
            firstNameTF.setText(cus.getFirstName());
            lastNameTF.setText(cus.getLastName());
            addressTF.setText(cus.getAddress());
            cityTF.setText(cus.getCity());
            stateTF.setText(cus.getCity());
            zipTF.setText(cus.getZip());
            phoneTF.setText(cus.getPhone());
            emailTF.setText(cus.getEmail());
        });

        
        /* ------------------------------------- ///Ideas??
        if (customerCB.getValue().equals(customerCB.getValue())) {
           customerCB.getSelectionModel().getSelectedItems();
           ObservableList<OrderDetail> orderDetails;
        for (orderDetailTableView.setItems(orderDetails));

       }else if{
        customerCB_Changed()
        customerCB.setOnAction (e -> customerCB_Changed() );
      customerCB.setOnAction(e −> setDisplay(items.indexOf(customerCB.getValue())));

        customerCB.valueProperty().addListener(new ChangeListener<Customer>) {
             @Override
        void changed(ObservableValue<? extends Customer>
                observable,Customer oldValue,Customer newValue);
         };

        ObservableList<OrderDetail> orderDetails = FXCollections.observableArrayList(getOrderDetails());

       }

     //   VBox vboxOrderDetail = prepareOrderDetailReport();
        -------------------------------------- */
        // Create a TableView
        TableView orderDetailTableView = new TableView();
        orderDetailTableView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
        orderDetailTableView.setPrefHeight(130);
        ObservableList<OrderDetail> orderDetails;

        // Create the columns of the "Order Detail Report"
        TableColumn<OrderDetail,Integer> orderIdCol = new TableColumn<>("Order ID");
        orderIdCol.setCellValueFactory(new PropertyValueFactory<>("id"));
        orderIdCol.setStyle("-fx-alignment: CENTER;");

        TableColumn<Customer,String> orderDateCol = new TableColumn<>("Order Date");
        orderDateCol.setCellValueFactory(new PropertyValueFactory<>("orderDate"));

        TableColumn<Customer,String> statusCol = new TableColumn<>("Status");
        statusCol.setCellValueFactory(new PropertyValueFactory<>("status"));

        TableColumn<Customer,Integer> customerIdCol = new TableColumn<>("Customer ID");
        customerIdCol.setCellValueFactory(new PropertyValueFactory<>("customerId"));
        customerIdCol.setStyle("-fx-alignment: CENTER;");

        TableColumn<Customer,String> firstNameCol = new TableColumn<>("First Name");
        firstNameCol.setCellValueFactory(new PropertyValueFactory<>("firstName"));

        TableColumn<Customer,String> lastNameCol = new TableColumn<>("Last Name");
        lastNameCol.setCellValueFactory(new PropertyValueFactory<>("lastName"));

        TableColumn<Customer,String> addressCol = new TableColumn<>("Address");
        addressCol.setCellValueFactory(new PropertyValueFactory<>("address"));

        TableColumn<Customer,String> cityCol = new TableColumn<>("City");
        cityCol.setCellValueFactory(new PropertyValueFactory<>("city"));

        TableColumn<Customer,String> stateCol = new TableColumn<>("State");
        stateCol.setCellValueFactory(new PropertyValueFactory<>("state"));

        TableColumn<Customer,String> zipCol = new TableColumn<>("Zip");
        zipCol.setCellValueFactory(new PropertyValueFactory<>("zip"));
        zipCol.setStyle("-fx-alignment: CENTER;");

        TableColumn<Customer,String> phoneCol = new TableColumn<>("Phone");
        phoneCol.setCellValueFactory(new PropertyValueFactory<>("phone"));

        TableColumn<Customer,String> emailCol = new TableColumn<>("Email");
        emailCol.setCellValueFactory(new PropertyValueFactory<>("email"));

        TableColumn<Customer,String> productCol = new TableColumn<>("Product");
        productCol.setCellValueFactory(new PropertyValueFactory<>("product"));

        TableColumn<Customer,Integer> quantityCol = new TableColumn<>("Quantity");
        quantityCol.setCellValueFactory(new PropertyValueFactory<>("quantity"));
        quantityCol.setStyle("-fx-alignment: CENTER;");

        orderDetailTableView.getColumns().addAll(orderIdCol,orderDateCol,statusCol,customerIdCol,firstNameCol,lastNameCol,addressCol,cityCol,stateCol,zipCol,phoneCol,emailCol,productCol,quantityCol);

        orderDetails = FXCollections.observableArrayList(getOrderDetails());
        orderDetailTableView.setItems(orderDetails);

        VBox vBoxOR = new VBox();
        vBoxOR.setSpacing(10);
        vBoxOR.getChildren().addAll(titleLBL,customerCB,orderDetailTableView);
        vBoxOR.setPadding(new Insets(10));

        VBox vboxOL = new VBox(10);
        vboxOL.getChildren().addAll(addMenu(primaryStage),vBoxOR);

        ciScene = new Scene(vboxOL,1200,800);
    } // end createCustomerInfoReportScene()
DB for MySql (script)
// Create a list of all details for a single customer's orders
    public ObservableList<OrderDetail> getOrderDetails() {
        initializeDB();
        ObservableList<OrderDetail> orderDetails = FXCollections.observableArrayList();
        try {
            // SQL query to get the details of all orders for a single customer
            String sql = "SELECT o.id order_id,o.order_date,o.order_status,c.id customer_id,c.first_name,\n"
                    + " c.last_name,c.address,c.city,c.state,c.zip,c.phone,c.email,p.product_name product,od.quantity \n"
                    + " FROM `order` o \n"
                    + " INNER JOIN order_detail od ON o.id = od.order_id\n"
                    + " INNER JOIN customer c ON o.customer_id = c.id\n"
                    + " INNER JOIN product p ON od.product_id = p.id";
            stmt = connection.createStatement();
            // Execute the query and retrieve the results
            ResultSet rs = stmt.executeQuery(sql);
            while (rs.next()) {
                // Create an object of the class OrderDetails
                OrderDetail orderDetail = new OrderDetail();
                orderDetail.setId(rs.getInt("order_id"));
                orderDetail.setOrderDate(rs.getDate("order_date"));
                orderDetail.setStatus(rs.getString("order_status"));
                orderDetail.setCustomerId(rs.getInt("customer_id"));
                orderDetail.setFirstName(rs.getString("first_name"));
                orderDetail.setLastName(rs.getString("last_name"));
                orderDetail.setAddress(rs.getString("address"));
                orderDetail.setCity(rs.getString("city"));
                orderDetail.setState(rs.getString("state"));
                orderDetail.setZip(rs.getString("zip"));
                orderDetail.setPhone(rs.getString("phone"));
                orderDetail.setEmail(rs.getString("email"));
                orderDetail.setProduct(rs.getString("product"));
                orderDetail.setQuantity(rs.getInt("quantity"));

                // Add the details of an order to the "orderDetails" list
                orderDetails.add(orderDetail);
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        } finally {
            closeStmt();
        }
        closeDB();
        return orderDetails;
    } // end getOrderDetailList()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)&gt; insert overwrite table dwd_trade_cart_add_inc &gt; select data.id, &gt; data.user_id, &gt; data.course_id, &gt; date_format(
错误1 hive (edu)&gt; insert into huanhuan values(1,&#39;haoge&#39;); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive&gt; show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 &lt;configuration&gt; &lt;property&gt; &lt;name&gt;yarn.nodemanager.res