当前位置: 首页 > 知识库问答 >
问题:

如何使用文件选择器和组合框中的列表项 ID 从文件中获取数据(项目 ID、项目名称、项目价格)?如何将标签与选择相匹配?

国兴文
2023-03-14

我正在尝试制作销售点终端。我需要使用 FileChooser 从文本文件中读取读取(项目 ID、项目名称和项目价格)。然后,itemID 应该列在组合框中。组合框选择应将标签和价格更改为相应的物料名称和商品价格。我相信这与属性和绑定有关,但我不明白如何使用它们。

我试过创建一个Items类,我试过将文件读入三个数组,然后将ID数组项与组合框选择进行比较,然后将标签文本切换到具有相同位置的名称数组项。

stage.setTitle("Open Resource File");
    FileChooser fileChooser = new FileChooser();
    try { 
        FileReader reader = new 
FileReader(fileChooser.showOpenDialog(stage));
        Scanner scanner = new Scanner(reader);
        for (int i = 0; i < 10; i++) {
            itemID[i] = scanner.next();
            itemName[i] = scanner.next();
            itemPrice[i] = scanner.nextDouble();
        }
        scanner.close();
        reader.close();
        }
    catch (Exception FileNotFoundException) {

    }



Items item = new Items();
    ComboBox idBox = new ComboBox();
    idBox.setPromptText("Select an item");
    idBox.getItems().addAll("A", "B", "C", "D", "E", "F", "G", "H", "I", 
"J");
    idBox.setOnAction(e -> {
        item.setName(idBox.getValue().toString(), itemID, itemName);
        item.setPrice(idBox.getValue().toString(), itemID, itemPrice);
        nameLbl.setText(item.name.toString());
    });

    double quantity;
    Label idLabel = new Label("Item ID: ");
    Label nameLabel = new Label("Item Name: ");
    Label nameLbl = new Label(item.name.toString());
    Label priceLabel = new Label("Item Price: ");
    Label priceLbl = new 
Label(NumberFormat.getCurrencyInstance(newLocale("en", 
"US")).format(item.price));    
    Label priceLbl = new Label("");

Program compiles and main window opens but shows error and crashes when 
it tries to create the point of sales terminal window.

共有1个答案

柴霖
2023-03-14

所以有很多事情你需要去了解,这不会包含所有的代码,但是足够让你开始了。

1)您将希望将项目扫描到可观察列表中

String id = scanner.next();
String name = scanner.next();
String price = scanner.nextDouble();
items.add(new Item(id, name, price));

尽管您可能想让扫描仪中的循环更动态一点(而不是10)-可能使用一个同时循环或不同的阅读器。

2) 现在您有了要使用<code>组合框的项目列表

3) 经销商可以选择是否使用<code>ObjectProperty

关于错误,您没有发布足够的信息(异常是什么,或者要复制的完整代码),所以我无法以这种方式提供帮助。但是,如果您研究上述项目,您应该更接近。

 类似资料:
  • 问题内容: 这似乎很基本,但我无法弄清楚。 我有一个表“ item_tags”,我想选择所有与标签1和2匹配的项目(例如,每个项目都必须同时具有两个标签)。 我将如何在mysql中执行此操作? 创建表是: 谢谢! 问题答案: 使用: 您需要定义GROUP BY和HAVING子句,并且不同标签ID的数量必须等于您在IN子句中指定的标签数。

  • 问题内容: 我们正在使用Selenium WebDriver和JBehave在我们的Web应用程序上运行“集成”测试。我有一种方法,可以在表单输入中输入一个值。 但是,当我尝试使用它在下拉列表中选择一个项目时,它(毫无疑问)失败了 java.lang.UnsupportedOperationException:您只能设置作为输入元素的元素的值 如何在组合中选择一个值? 问题答案: 这是怎么做的:

  • 我在后台有< code>ViewModel(实现< code > INotifyPropertyChanged )和类< code>Category,它只有一个< code>string类型的属性。我的ComboBox SelectedItem绑定到类别的实例。当我更改instance的值时,SelectedItem没有更新,Combobox也没有更改。 编辑:代码 组合框: 物业: 我尝试的是:

  • 问题内容: 如何从选择框中删除项目或向其中添加项目?我正在运行jQuery,这应该使任务更轻松。下面是一个示例选择框。 问题答案: 删除一个选项: 添加一个选项:

  • 我有一个Windows Phone应用程序,其中一个ListPicker绑定到一个ObservableCollection和一个选定的项目: 在ViewModel中: 当我试图从按钮处理程序的列表中删除所选项目时,我得到一个InvalidOperationException(SelectedItem必须始终设置为有效值): 我希望将SseltedCon条件设置为null(这实际上是列表中的第一个项

  • 我需要在加载时选择组合框的第一个项目。 XAML: 我希望在打开窗口时在组合框中最初选择。 我使用< code>SelectedItem属性在所选项目发生更改时触发一个事件。