【问题标题】:boolean to string in TableView JavaFx布尔到 TableView JavaFx 中的字符串
【发布时间】:2023-03-29 11:54:01
【问题描述】:

我试图在 tableview 中将布尔值显示为字符串,所以我想显示男性而不是 true。

说实话,我有点迷失了。我在互联网上找不到任何帮助。

ecilpse 给我的错误是 TableColumn 类型中的方法“ setCellValueFactory(Callback,ObservableValue>) 不适用于参数 (( cellData) -> {})”

这是我的代码。它可能是错误的

TableColumn<Animal, String > genColumn = new TableColumn<>("Male");
        genColumn.setMinWidth(50);
        genColumn.setCellValueFactory(cellData -> {
            boolean gender = cellData.getValue().getGender();
            String genderAsString;
            if(gender == true)
            {
                genderAsString = "Male";
            }
            else
            {
                genderAsString = "Female";
            }

            new ReadOnlyStringWrapper(genderAsString);
        });

如果有任何帮助,我将不胜感激,谢谢

【问题讨论】:

    标签: string javafx boolean tableview


    【解决方案1】:

    将类型保持为布尔值并使用单元工厂来更改显示方式:

    TableColumn<Animal, Boolean> genColumn = new TableColumn<>("Gender");
    genColumn.setCellValueFactory(cellData -> cellData.getValue().genderProperty());
    // or cellData -> new SimpleBooleanProperty(cellData.getValue().getGender())
    // if your model class doesn't use JavaFX properties
    
    genColumn.setCellFactory(col -> new TableCell<Animal, Boolean>() {
        @Override
        protected void updateItem(Boolean item, boolean empty) {
            super.updateItem(item, empty) ;
            setText(empty ? null : item ? "Male" : "Female" );
        }
    });
    

    【讨论】:

      【解决方案2】:

      我设法让它工作了,我只是错过了 return 声明。

      这是代码

      TableColumn<Animal, String > genColumn = new TableColumn<>("Gender");
              genColumn.setMinWidth(50);
              genColumn.setCellValueFactory(cellData -> {
                  boolean gender = cellData.getValue().getGender();
                  String genderAsString;
                  if(gender == true)
                  {
                      genderAsString = "Male";
                  }
                  else
                  {
                      genderAsString = "Female";
                  }
      
               return new ReadOnlyStringWrapper(genderAsString);
              });
      

      【讨论】:

        猜你喜欢
        • 2016-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多