我有一个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));
答案 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;
请注意,虽然您使用的是ObservableList
和ObservableMap
,但实际结果是该表不会响应ObservableMap
中的任何更改。如果您希望在运行时更改地图,则必须执行更多操作(使用MapChangeListener
)。