Как поместить дополнительные данные в JavaFX TableView (Scene Builder) с данными JSON - PullRequest
0 голосов
/ 31 января 2020

В настоящее время я могу получить данные JSON из https://jsonplaceholder.typicode.com/albums.

. На данный момент я могу проанализировать данные json и вызвать каждое их поле. JSON включает поля id, userId, title

. В моем коде я объявляю их ниже

int id,userId

String title

и это текущий вывод

enter image description here

Теперь я пытаюсь поместить эти значения в FXML file для моего Home.fxml

в моем табличном представлении есть столбцы id,userId,title, а в этих столбцах - fx:id из

field1, field2, field3

Вот f xml

enter image description here

и fx:id из TableView равно fx:id="tableView"

Что я хочу попробовать, это поместить проанализированные данные JSON в представление таблицы. Но я понятия не имею, как я могу разместить их все.

Мои Main коды файлов

 public class Main extends Application {

private static HttpURLConnection connection;


@Override
public void start(Stage primaryStage) throws Exception{

    BufferedReader reader;
    String line;
    StringBuffer responseContent = new StringBuffer();

    try {
        URL url = new URL("https://jsonplaceholder.typicode.com/albums");
        connection = (HttpURLConnection) url.openConnection();

        // Request Setup

        connection.setRequestMethod("GET");
        connection.setConnectTimeout(5000);
        connection.setReadTimeout(5000);

        int status = connection.getResponseCode();

        if (status > 299){
            reader = new BufferedReader(new InputStreamReader(connection.getErrorStream()));
        } else {
            reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        }
        while((line = reader.readLine()) != null){
            responseContent.append(line);
        }

        reader.close();
        parse(responseContent.toString());
    }

    catch (MalformedURLException e){
        e.printStackTrace();
    }
    catch (IOException e){
        e.printStackTrace();
    } finally{
        connection.disconnect();
    }


    Scene scene = new Scene(FXMLLoader.load(getClass().getResource("Home.fxml")));
    primaryStage.setScene(scene);
    primaryStage.setTitle("Home");
    primaryStage.show();


}

public static String parse(String responseBody){
    JSONArray albums = new JSONArray(responseBody);
    for (int i = 0; i < albums.length(); i++){
        JSONObject album = albums.getJSONObject(i);
        int id = album.getInt("id");
        int userId = album.getInt("userId");
        String title = (String) album.get("title");
        System.out.println(id + " | " + title + " | " + userId);

    }
    return null;
}
public static void main(String[] args) { launch(args); }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...