ListView.refresh()不起作用

时间:2017-02-27 15:54:27

标签: java listview javafx gson

不知何故,虽然在JavaDoc中有说明,但方法refresh()对我来说不起作用,只能再次调用setItems(),这需要花费大量时间,特别是当关联的ObservableList很长时,对我有效。这是我的源代码:

NetworkManager类,getStations()方法

ObservableList<Station> getStations() {
        ObservableList<Station> stations = FXCollections.observableArrayList();
        JsonArray jsonArray = getRootElement().getAsJsonObject().getAsJsonArray("stations");
        for(JsonElement currentElement : jsonArray) {
            stations.add(gson.fromJson(currentElement, Station.class));
        }
        return stations;
}

然后我在我的JavaFX初始化方法中建立了ListView和这个方法之间的连接:

listView.setItems(networkManager.getStations());

现在,如果我注册一个新的Station对象,我就用

listView.refresh();

ListView没有刷新,只有这个工作:

listView.setItems(networkManager.getStations());

这里有什么问题?

Kenta1561

编辑: 我的Application类扩展主类:

package de.kenta1561.enr.main.java;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.geometry.Rectangle2D;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.TabPane;
import javafx.stage.FileChooser;
import javafx.stage.Screen;
import javafx.stage.Stage;
import javafx.stage.Window;

import java.io.File;
import java.io.IOException;

public class EasyNetworkRegistration extends Application {

private File file;
private Controller controller;

private boolean fileCreated;

@Override
public void start(Stage primaryStage) throws Exception {
    showFileChooser(primaryStage);
    FXMLLoader loader = new FXMLLoader(getClass().getResource("/de/kenta1561/enr/main/resources/EasyNetworkRegistration.fxml"));
    TabPane pane = loader.load();
    controller = loader.getController();
    initializeController();
    Scene scene = new Scene(pane);
    primaryStage.setScene(scene);
    primaryStage.setTitle("EasyNetworkRegistration");
    primaryStage.show();
    setCenter(primaryStage);
}

如何将工作站添加到我的JSON文件中:

void addStation(Station station) {
        JsonObject rootObject = getRootElement().getAsJsonObject();
        JsonArray jsonArray = rootObject.getAsJsonArray("stations");
        jsonArray.add(gson.toJsonTree(station));
        writeToFile(rootObject);
}

PS:显然,在调用此方法后调用refresh()方法,因此我认为这不应该是问题。

1 个答案:

答案 0 :(得分:3)

from Tkinter import * class Application(Frame): def __init__(self, master): Frame.__init__(self, master) self.right = False self.left = False self.up = False self.down = False self.grid() self.px = 16 self.py = 8 self.a = "green" self.b = 'blue' self.c = "green" self.line1 = {1:self.a,2:self.a,3:self.a,4:self.a,5:self.a,6:self.a,7:self.a,8:self.a,9:self.a,10:self.a,11:self.a,12:self.a,13:self.a,14:self.a,15:self.a,16:self.a,17:self.a,18:self.a,19:self.a,20:self.a,21:self.a,22:self.a,23:self.a,24:self.a,25:self.a,26:self.a,27:self.a,28:self.a,29:self.a,30:self.a,31:self.a,32:self.a,33:self.a,34:self.a,35:self.a,36:self.a,37:self.a,38:self.a,39:self.a,40:self.a,41:self.a,42:self.a,43:self.a,44:self.a,45:self.a,46:self.a,47:self.a,48:self.a,49:self.a,50:self.a,51:self.a,52:self.a,53:self.a,54:self.a,55:self.a,56:self.a,57:self.a,58:self.a,59:self.a,60:self.a,61:self.a,62:self.a,63:self.a,64:self.a,65:self.a,66:self.a,67:self.a,68:self.a,69:self.a,70:self.a,71:self.a,72:self.a,73:self.a,74:self.a,75:self.a,76:self.a,77:self.a,78:self.a,79:self.a,80:self.a,81:self.a,82:self.a,83:self.a,84:self.a,85:self.a,86:self.a,87:self.a,88:self.a,89:self.a,90:self.a,91:self.a,92:self.a,93:self.a,94:self.a,95:self.a,96:self.a,97:self.a,98:self.a,99:self.a,100:self.a} self.line2 = {1:self.a,2:self.a,3:self.c,4:self.a,5:self.a,6:self.a,7:self.a,8:self.a,9:self.a,10:self.a,11:self.a,12:self.a,13:self.a,14:self.a,15:self.a,16:self.a,17:self.a,18:self.a,19:self.a,20:self.a,21:self.a,22:self.a,23:self.a,24:self.a,25:self.a,26:self.a,27:self.a,28:self.a,29:self.a,30:self.a,31:self.a,32:self.a,33:self.a,34:self.a,35:self.a,36:self.a,37:self.a,38:self.a,39:self.a,40:self.a,41:self.a,42:self.a,43:self.a,44:self.a,45:self.a,46:self.a,47:self.a,48:self.a,49:self.a,50:self.a,51:self.a,52:self.a,53:self.a,54:self.a,55:self.a,56:self.a,57:self.a,58:self.a,59:self.a,60:self.a,61:self.a,62:self.a,63:self.a,64:self.a,65:self.a,66:self.a,67:self.a,68:self.a,69:self.a,70:self.a,71:self.a,72:self.a,73:self.a,74:self.a,75:self.a,76:self.a,77:self.a,78:self.a,79:self.a,80:self.a,81:self.a,82:self.a,83:self.a,84:self.a,85:self.a,86:self.a,87:self.a,88:self.a,89:self.a,90:self.a,91:self.a,92:self.a,93:self.a,94:self.a,95:self.a,96:self.a,97:self.a,98:self.a,99:self.a,100:self.a} self.line3 = {1:self.a,2:self.a,3:self.a,4:self.a,5:self.a,6:self.a,7:self.a,8:self.a,9:self.a,10:self.a,11:self.a,12:self.a,13:self.a,14:self.a,15:self.a,16:self.a,17:self.a,18:self.a,19:self.a,20:self.a,21:self.a,22:self.a,23:self.a,24:self.a,25:self.a,26:self.a,27:self.a,28:self.a,29:self.a,30:self.a,31:self.a,32:self.a,33:self.a,34:self.a,35:self.a,36:self.a,37:self.a,38:self.a,39:self.a,40:self.a,41:self.a,42:self.a,43:self.a,44:self.a,45:self.a,46:self.a,47:self.a,48:self.a,49:self.a,50:self.a,51:self.a,52:self.a,53:self.a,54:self.a,55:self.a,56:self.a,57:self.a,58:self.a,59:self.a,60:self.a,61:self.a,62:self.a,63:self.a,64:self.a,65:self.a,66:self.a,67:self.a,68:self.a,69:self.a,70:self.a,71:self.a,72:self.a,73:self.a,74:self.a,75:self.a,76:self.a,77:self.a,78:self.a,79:self.a,80:self.a,81:self.a,82:self.a,83:self.a,84:self.a,85:self.a,86:self.a,87:self.a,88:self.a,89:self.a,90:self.a,91:self.a,92:self.a,93:self.a,94:self.a,95:self.a,96:self.a,97:self.a,98:self.a,99:self.a,100:self.a} self.line4 = {1:self.a,2:self.a,3:self.a,4:self.a,5:self.a,6:self.a,7:self.a,8:self.a,9:self.a,10:self.a,11:self.a,12:self.a,13:self.a,14:self.a,15:self.a,16:self.a,17:self.a,18:self.a,19:self.a,20:self.a,21:self.a,22:self.a,23:self.a,24:self.a,25:self.a,26:self.a,27:self.a,28:self.a,29:self.a,30:self.a,31:self.a,32:self.a,33:self.a,34:self.a,35:self.a,36:self.a,37:self.a,38:self.a,39:self.a,40:self.a,41:self.a,42:self.a,43:self.a,44:self.a,45:self.a,46:self.a,47:self.a,48:self.a,49:self.a,50:self.a,51:self.a,52:self.a,53:self.a,54:self.a,55:self.a,56:self.a,57:self.a,58:self.a,59:self.a,60:self.a,61:self.a,62:self.a,63:self.a,64:self.a,65:self.a,66:self.a,67:self.a,68:self.a,69:self.a,70:self.a,71:self.a,72:self.a,73:self.a,74:self.a,75:self.a,76:self.a,77:self.a,78:self.a,79:self.a,80:self.a,81:self.a,82:self.a,83:self.a,84:self.a,85:self.a,86:self.a,87:self.a,88:self.a,89:self.a,90:self.a,91:self.a,92:self.a,93:self.a,94:self.a,95:self.a,96:self.a,97:self.a,98:self.a,99:self.a,100:self.a} self.line5 = {1:self.a,2:self.a,3:self.a,4:self.a,5:self.a,6:self.a,7:self.a,8:self.a,9:self.a,10:self.a,11:self.a,12:self.a,13:self.a,14:self.a,15:self.a,16:self.a,17:self.a,18:self.a,19:self.a,20:self.a,21:self.a,22:self.a,23:self.a,24:self.a,25:self.a,26:self.a,27:self.a,28:self.a,29:self.a,30:self.a,31:self.a,32:self.a,33:self.a,34:self.a,35:self.a,36:self.a,37:self.a,38:self.a,39:self.a,40:self.a,41:self.a,42:self.a,43:self.a,44:self.a,45:self.a,46:self.a,47:self.a,48:self.a,49:self.a,50:self.a,51:self.a,52:self.a,53:self.a,54:self.a,55:self.a,56:self.a,57:self.a,58:self.a,59:self.a,60:self.a,61:self.a,62:self.a,63:self.a,64:self.a,65:self.a,66:self.a,67:self.a,68:self.a,69:self.a,70:self.a,71:self.a,72:self.a,73:self.a,74:self.a,75:self.a,76:self.a,77:self.a,78:self.a,79:self.a,80:self.a,81:self.a,82:self.a,83:self.a,84:self.a,85:self.a,86:self.a,87:self.a,88:self.a,89:self.a,90:self.a,91:self.a,92:self.a,93:self.a,94:self.a,95:self.a,96:self.a,97:self.a,98:self.a,99:self.a,100:self.a} self.line6 = {1:self.a,2:self.a,3:self.b,4:self.a,5:self.a,6:self.a,7:self.a,8:self.a,9:self.a,10:self.a,11:self.a,12:self.a,13:self.a,14:self.a,15:self.a,16:self.a,17:self.a,18:self.a,19:self.a,20:self.a,21:self.a,22:self.a,23:self.a,24:self.a,25:self.a,26:self.a,27:self.a,28:self.a,29:self.a,30:self.a,31:self.a,32:self.a,33:self.a,34:self.a,35:self.a,36:self.a,37:self.a,38:self.a,39:self.a,40:self.a,41:self.a,42:self.a,43:self.a,44:self.a,45:self.a,46:self.a,47:self.a,48:self.a,49:self.a,50:self.a,51:self.a,52:self.a,53:self.a,54:self.a,55:self.a,56:self.a,57:self.a,58:self.a,59:self.a,60:self.a,61:self.a,62:self.a,63:self.a,64:self.a,65:self.a,66:self.a,67:self.a,68:self.a,69:self.a,70:self.a,71:self.a,72:self.a,73:self.a,74:self.a,75:self.a,76:self.a,77:self.a,78:self.a,79:self.a,80:self.a,81:self.a,82:self.a,83:self.a,84:self.a,85:self.a,86:self.a,87:self.a,88:self.a,89:self.a,90:self.a,91:self.a,92:self.a,93:self.a,94:self.a,95:self.a,96:self.a,97:self.a,98:self.a,99:self.a,100:self.a} self.line7 = {1:self.b,2:self.b,3:self.b,4:self.b,5:self.b,6:self.a,7:self.a,8:self.a,9:self.a,10:self.a,11:self.a,12:self.a,13:self.a,14:self.a,15:self.a,16:self.a,17:self.a,18:self.a,19:self.a,20:self.a,21:self.a,22:self.a,23:self.a,24:self.a,25:self.a,26:self.a,27:self.a,28:self.a,29:self.a,30:self.a,31:self.a,32:self.a,33:self.a,34:self.a,35:self.a,36:self.a,37:self.a,38:self.a,39:self.a,40:self.a,41:self.a,42:self.a,43:self.a,44:self.a,45:self.a,46:self.a,47:self.a,48:self.a,49:self.a,50:self.a,51:self.a,52:self.a,53:self.a,54:self.a,55:self.a,56:self.a,57:self.a,58:self.a,59:self.a,60:self.a,61:self.a,62:self.a,63:self.a,64:self.a,65:self.a,66:self.a,67:self.a,68:self.a,69:self.a,70:self.a,71:self.a,72:self.a,73:self.a,74:self.a,75:self.a,76:self.a,77:self.a,78:self.a,79:self.a,80:self.a,81:self.a,82:self.a,83:self.a,84:self.a,85:self.a,86:self.a,87:self.a,88:self.a,89:self.a,90:self.a,91:self.a,92:self.a,93:self.a,94:self.a,95:self.a,96:self.a,97:self.a,98:self.a,99:self.a,100:self.a} self.line8 = {1:self.b,2:self.b,3:self.b,4:self.b,5:self.b,6:self.a,7:self.a,8:self.a,9:self.a,10:self.a,11:self.a,12:self.a,13:self.a,14:self.a,15:self.a,16:self.a,17:self.a,18:self.a,19:self.a,20:self.a,21:self.a,22:self.a,23:self.a,24:self.a,25:self.a,26:self.a,27:self.a,28:self.a,29:self.a,30:self.a,31:self.a,32:self.a,33:self.a,34:self.a,35:self.a,36:self.a,37:self.a,38:self.a,39:self.a,40:self.a,41:self.a,42:self.a,43:self.a,44:self.a,45:self.a,46:self.a,47:self.a,48:self.a,49:self.a,50:self.a,51:self.a,52:self.a,53:self.a,54:self.a,55:self.a,56:self.a,57:self.a,58:self.a,59:self.a,60:self.a,61:self.a,62:self.a,63:self.a,64:self.a,65:self.a,66:self.a,67:self.a,68:self.a,69:self.a,70:self.a,71:self.a,72:self.a,73:self.a,74:self.a,75:self.a,76:self.a,77:self.a,78:self.a,79:self.a,80:self.a,81:self.a,82:self.a,83:self.a,84:self.a,85:self.a,86:self.a,87:self.a,88:self.a,89:self.a,90:self.a,91:self.a,92:self.a,93:self.a,94:self.a,95:self.a,96:self.a,97:self.a,98:self.a,99:self.a,100:self.a} self.line9 = {1:self.b,2:self.b,3:self.b,4:self.b,5:self.b,6:self.a,7:self.a,8:self.a,9:self.a,10:self.a,11:self.a,12:self.a,13:self.a,14:self.a,15:self.a,16:self.a,17:self.a,18:self.a,19:self.a,20:self.a,21:self.a,22:self.a,23:self.a,24:self.a,25:self.a,26:self.a,27:self.a,28:self.a,29:self.a,30:self.a,31:self.a,32:self.a,33:self.a,34:self.a,35:self.a,36:self.a,37:self.a,38:self.a,39:self.a,40:self.a,41:self.a,42:self.a,43:self.a,44:self.a,45:self.a,46:self.a,47:self.a,48:self.a,49:self.a,50:self.a,51:self.a,52:self.a,53:self.a,54:self.a,55:self.a,56:self.a,57:self.a,58:self.a,59:self.a,60:self.a,61:self.a,62:self.a,63:self.a,64:self.a,65:self.a,66:self.a,67:self.a,68:self.a,69:self.a,70:self.a,71:self.a,72:self.a,73:self.a,74:self.a,75:self.a,76:self.a,77:self.a,78:self.a,79:self.a,80:self.a,81:self.a,82:self.a,83:self.a,84:self.a,85:self.a,86:self.a,87:self.a,88:self.a,89:self.a,90:self.a,91:self.a,92:self.a,93:self.a,94:self.a,95:self.a,96:self.a,97:self.a,98:self.a,99:self.a,100:self.a} self.line10= {1:self.a,2:self.a,3:self.a,4:self.b,5:self.a,6:self.a,7:self.a,8:self.a,9:self.a,10:self.a,11:self.a,12:self.a,13:self.a,14:self.a,15:self.a,16:self.a,17:self.a,18:self.a,19:self.a,20:self.a,21:self.a,22:self.a,23:self.a,24:self.a,25:self.a,26:self.a,27:self.a,28:self.a,29:self.a,30:self.a,31:self.a,32:self.a,33:self.a,34:self.a,35:self.a,36:self.a,37:self.a,38:self.a,39:self.a,40:self.a,41:self.a,42:self.a,43:self.a,44:self.a,45:self.a,46:self.a,47:self.a,48:self.a,49:self.a,50:self.a,51:self.a,52:self.a,53:self.a,54:self.a,55:self.a,56:self.a,57:self.a,58:self.a,59:self.a,60:self.a,61:self.a,62:self.a,63:self.a,64:self.a,65:self.a,66:self.a,67:self.a,68:self.a,69:self.a,70:self.a,71:self.a,72:self.a,73:self.a,74:self.a,75:self.a,76:self.a,77:self.a,78:self.a,79:self.a,80:self.a,81:self.a,82:self.a,83:self.a,84:self.a,85:self.a,86:self.a,87:self.a,88:self.a,89:self.a,90:self.a,91:self.a,92:self.a,93:self.a,94:self.a,95:self.a,96:self.a,97:self.a,98:self.a,99:self.a,100:self.a} self.line11= {1:self.a,2:self.a,3:self.a,4:self.a,5:self.a,6:self.a,7:self.a,8:self.a,9:self.a,10:self.a,11:self.a,12:self.a,13:self.a,14:self.a,15:self.a,16:self.a,17:self.a,18:self.a,19:self.a,20:self.a,21:self.a,22:self.a,23:self.a,24:self.a,25:self.a,26:self.a,27:self.a,28:self.a,29:self.a,30:self.a,31:self.a,32:self.a,33:self.a,34:self.a,35:self.a,36:self.a,37:self.a,38:self.a,39:self.a,40:self.a,41:self.a,42:self.a,43:self.a,44:self.a,45:self.a,46:self.a,47:self.a,48:self.a,49:self.a,50:self.a,51:self.a,52:self.a,53:self.a,54:self.a,55:self.a,56:self.a,57:self.a,58:self.a,59:self.a,60:self.a,61:self.a,62:self.a,63:self.a,64:self.a,65:self.a,66:self.a,67:self.a,68:self.a,69:self.a,70:self.a,71:self.a,72:self.a,73:self.a,74:self.a,75:self.a,76:self.a,77:self.a,78:self.a,79:self.a,80:self.a,81:self.a,82:self.a,83:self.a,84:self.a,85:self.a,86:self.a,87:self.a,88:self.a,89:self.a,90:self.a,91:self.a,92:self.a,93:self.a,94:self.a,95:self.a,96:self.a,97:self.a,98:self.a,99:self.a,100:self.a} self.line12= {1:self.a,2:self.a,3:self.a,4:self.a,5:self.a,6:self.a,7:self.a,8:self.a,9:self.a,10:self.a,11:self.a,12:self.a,13:self.a,14:self.a,15:self.a,16:self.a,17:self.a,18:self.a,19:self.a,20:self.a,21:self.a,22:self.a,23:self.a,24:self.a,25:self.a,26:self.a,27:self.a,28:self.a,29:self.a,30:self.a,31:self.a,32:self.a,33:self.a,34:self.a,35:self.a,36:self.a,37:self.a,38:self.a,39:self.a,40:self.a,41:self.a,42:self.a,43:self.a,44:self.a,45:self.a,46:self.a,47:self.a,48:self.a,49:self.a,50:self.a,51:self.a,52:self.a,53:self.a,54:self.a,55:self.a,56:self.a,57:self.a,58:self.a,59:self.a,60:self.a,61:self.a,62:self.a,63:self.a,64:self.a,65:self.a,66:self.a,67:self.a,68:self.a,69:self.a,70:self.a,71:self.a,72:self.a,73:self.a,74:self.a,75:self.a,76:self.a,77:self.a,78:self.a,79:self.a,80:self.a,81:self.a,82:self.a,83:self.a,84:self.a,85:self.a,86:self.a,87:self.a,88:self.a,89:self.a,90:self.a,91:self.a,92:self.a,93:self.a,94:self.a,95:self.a,96:self.a,97:self.a,98:self.a,99:self.a,100:self.a} self.line13= {1:self.a,2:self.a,3:self.a,4:self.a,5:self.a,6:self.a,7:self.a,8:self.a,9:self.a,10:self.a,11:self.a,12:self.a,13:self.a,14:self.a,15:self.a,16:self.a,17:self.a,18:self.a,19:self.a,20:self.a,21:self.a,22:self.a,23:self.a,24:self.a,25:self.a,26:self.a,27:self.a,28:self.a,29:self.a,30:self.a,31:self.a,32:self.a,33:self.a,34:self.a,35:self.a,36:self.a,37:self.a,38:self.a,39:self.a,40:self.a,41:self.a,42:self.a,43:self.a,44:self.a,45:self.a,46:self.a,47:self.a,48:self.a,49:self.a,50:self.a,51:self.a,52:self.a,53:self.a,54:self.a,55:self.a,56:self.a,57:self.a,58:self.a,59:self.a,60:self.a,61:self.a,62:self.a,63:self.a,64:self.a,65:self.a,66:self.a,67:self.a,68:self.a,69:self.a,70:self.a,71:self.a,72:self.a,73:self.a,74:self.a,75:self.a,76:self.a,77:self.a,78:self.a,79:self.a,80:self.a,81:self.a,82:self.a,83:self.a,84:self.a,85:self.a,86:self.a,87:self.a,88:self.a,89:self.a,90:self.a,91:self.a,92:self.a,93:self.a,94:self.a,95:self.a,96:self.a,97:self.a,98:self.a,99:self.a,100:self.a} self.line14= {1:self.a,2:self.a,3:self.a,4:self.a,5:self.a,6:self.a,7:self.a,8:self.a,9:self.a,10:self.a,11:self.a,12:self.a,13:self.a,14:self.a,15:self.a,16:self.a,17:self.a,18:self.a,19:self.a,20:self.a,21:self.a,22:self.a,23:self.a,24:self.a,25:self.a,26:self.a,27:self.a,28:self.a,29:self.a,30:self.a,31:self.a,32:self.a,33:self.a,34:self.a,35:self.a,36:self.a,37:self.a,38:self.a,39:self.a,40:self.a,41:self.a,42:self.a,43:self.a,44:self.a,45:self.a,46:self.a,47:self.a,48:self.a,49:self.a,50:self.a,51:self.a,52:self.a,53:self.a,54:self.a,55:self.a,56:self.a,57:self.a,58:self.a,59:self.a,60:self.a,61:self.a,62:self.a,63:self.a,64:self.a,65:self.a,66:self.a,67:self.a,68:self.a,69:self.a,70:self.a,71:self.a,72:self.a,73:self.a,74:self.a,75:self.a,76:self.a,77:self.a,78:self.a,79:self.a,80:self.a,81:self.a,82:self.a,83:self.a,84:self.a,85:self.a,86:self.a,87:self.a,88:self.a,89:self.a,90:self.a,91:self.a,92:self.a,93:self.a,94:self.a,95:self.a,96:self.a,97:self.a,98:self.a,99:self.a,100:self.a} self.line15= {1:self.a,2:self.a,3:self.a,4:self.a,5:self.a,6:self.a,7:self.a,8:self.a,9:self.a,10:self.a,11:self.a,12:self.a,13:self.a,14:self.a,15:self.a,16:self.a,17:self.a,18:self.a,19:self.a,20:self.a,21:self.a,22:self.a,23:self.a,24:self.a,25:self.a,26:self.a,27:self.a,28:self.a,29:self.a,30:self.a,31:self.a,32:self.a,33:self.a,34:self.a,35:self.a,36:self.a,37:self.a,38:self.a,39:self.a,40:self.a,41:self.a,42:self.a,43:self.a,44:self.a,45:self.a,46:self.a,47:self.a,48:self.a,49:self.a,50:self.a,51:self.a,52:self.a,53:self.a,54:self.a,55:self.a,56:self.a,57:self.a,58:self.a,59:self.a,60:self.a,61:self.a,62:self.a,63:self.a,64:self.a,65:self.a,66:self.a,67:self.a,68:self.a,69:self.a,70:self.a,71:self.a,72:self.a,73:self.a,74:self.a,75:self.a,76:self.a,77:self.a,78:self.a,79:self.a,80:self.a,81:self.a,82:self.a,83:self.a,84:self.a,85:self.a,86:self.a,87:self.a,88:self.a,89:self.a,90:self.a,91:self.a,92:self.a,93:self.a,94:self.a,95:self.a,96:self.a,97:self.a,98:self.a,99:self.a,100:self.a} self.map = [self.line1,self.line2,self.line3,self.line4,self.line5,self.line6,self.line7,self.line8,self.line9,self.line10,self.line11,self.line12,self.line13,self.line14,self.line15] self.create_widgets() def create_widgets(self): Text(self, width = 20, height = 1, wrap = WORD).grid(row = 0, column = 0, columnspan = 3,sticky = W) y = 0 q = 1 s = 0 self.a = "yellow" for i in self.map: if q == self.py: s = 1 w = 0 for x in range(31): if self.px-15 <= 0: x += 1 else: x += (self.px-15) if s == 1 and x == self.px: Label(self, text = " / ", bg = "navajo white", fg = "saddle brown",font = ("Times", 20)).grid(row = y, column = w+3) s = 0 else: Label(self, text = " / ", bg = i[x], fg = i[x], font = ("Times", 20)).grid(row = y, column = w+3) w += 1 y += 1 q += 1 def keyPressed(self,event): if event.keysym == 'Escape': root.destroy() elif event.keysym == 'Right': self.right = True elif event.keysym == 'Left': self.left = True elif event.keysym == 'Up': self.up = True elif event.keysym == 'Down': self.down = True def keyReleased(self,event): if event.keysym == 'Right': self.right = False elif event.keysym == 'Left': self.left = False elif event.keysym == 'Up': self.up = False elif event.keysym == 'Down': self.down = False def task(self): if self.right: self.mr() elif self.left: self.ml() elif self.up: self.mu() elif self.down: self.md() root.after(20,self.task) def mr(self): for widget in self.winfo_children(): widget.destroy() self.px += 1 self.create_widgets() def ml(self): for widget in self.winfo_children(): widget.destroy() self.px -= 1 self.create_widgets() def mu(self): for widget in self.winfo_children(): widget.destroy() self.py -= 1 self.create_widgets() def md(self): for widget in self.winfo_children(): widget.destroy() self.py += 1 self.create_widgets() root = Tk() app = Application(root) root.bind_all('<Key>', app.keyPressed) root.bind_all('<KeyRelease>', app.keyReleased) root.after(20, app.task) root.title("RPG") root.geometry("10000x100000") root.mainloop() 方法唯一做的就是更新JSON文件。桌子无法知道任何事情都发生了变化。对addStation的调用仅仅会重新加载来自同一refresh()的数据,而您还没有更改过。

考虑直接将新电台添加到可观察列表中:

ObservableList

(如果void addStation(Station station) { JsonObject rootObject = getRootElement().getAsJsonObject(); JsonArray jsonArray = rootObject.getAsJsonArray("stations"); jsonArray.add(gson.toJsonTree(station)); writeToFile(rootObject); listView.getItems().add(station); } 不在您的控制器中,则以显而易见的方式重构此事。)

不需要致电addStation