如何将Map与JavaFX TableView集成

时间:2018-01-02 19:58:56

标签: javafx tableview treemap

我有一个2列的TableView,我想用它来显示Map(Key,Value)的内容 问题是TableView中没有显示任何内容。

var __extends = (this && this.__extends) || (function () {
    var extendStatics = Object.setPrototypeOf ||
        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
var Shape = /** @class */ (function () {
    function Shape(name, shapeType) {
        this.name = name;
        this.shapeType = shapeType;
    }
    return Shape;
}());
var Triangle = /** @class */ (function (_super) {
    __extends(Triangle, _super);
    function Triangle(name, shapeType) {
        return _super.call(this, name, shapeType) || this;
    }
    return Triangle;
}(Shape));

1 个答案:

答案 0 :(得分:0)

这些定义肯定是错误的。

@FXML
private TableColumn<Map.Entry<Integer, String>, String> tcKey;
@FXML
private TableColumn<Map.Entry<String, String>, String> tcValue;

我认为正确的定义是:

@FXML
private TableColumn<Map.Entry<Integer, String>, Integer> tcKey;
@FXML
private TableColumn<Map.Entry<Integer, String>, String> tcValue;

请注意,虽然您使用的是ObservableListObservableMap,但实际结果是该表不会响应ObservableMap中的任何更改。如果您希望在运行时更改地图,则必须执行更多操作(使用MapChangeListener)。