gpt4 book ai didi

JavaFX 回调 Lambda

转载 作者:行者123 更新时间:2023-11-30 03:58:08 25 4
gpt4 key购买 nike

如何使用 JavaFX2 在 Java 8 中转换此表达式

Callback<TableColumn<Factura, BigDecimal>, TableCell<Factura, BigDecimal>> moneyCellFactory =
new Callback<TableColumn<Factura, BigDecimal>, TableCell<Factura, BigDecimal>>() {
public TableCell call(TableColumn p) {
return new MoneyFormatCell();
}
};

进入 lambda 表达式。

我尝试了此操作,但无法处理消息 Incomplete return Type in lambda expression。

Callback<TableColumn<Factura, BigDecimal>, TableCell<Factura, BigDecimal>> moneyCellFactory2 =
p -> new MoneyFormatCell();

moneyFormatCell的代码是这样的:

package com.nettrace.procesarFacturas;
import com.nettrace.common.utils.Formatter;
import javafx.geometry.Pos;
import javafx.scene.control.TableCell;
import javafx.scene.paint.Color;
import javafx.scene.text.TextAlignment;
import java.math.BigDecimal;
public class MoneyFormatCell extends TableCell<Object, BigDecimal> {

public MoneyFormatCell() {

}

@Override
protected void updateItem(BigDecimal item, boolean b) {
super.updateItem(item, b);

if(item ==null){
setText("");
}else{
setText(Formatter.formatMoney(item));
setTextAlignment(TextAlignment.RIGHT);
setAlignment(Pos.CENTER_RIGHT);

double value = item.doubleValue();
setTextFill(isSelected() ? Color.WHITE :
value == 0 ? Color.BLACK :
value < 0 ? Color.RED : Color.GREEN);
}
}
}

最佳答案

为什么你的 MoneyFormatCell extends TableCell<Object, BigDecimal>
应该是:

public class MoneyFormatCell extends TableCell<Factura, BigDecimal> { ... }

您的 Lambda 表达式是正确的,问题出在上面提到的代码片段中。

关于JavaFX 回调 Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22601925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com