Массив двумерных объектов JTable - PullRequest
0 голосов
/ 08 мая 2018

Может, этот вопрос повторяется, но я попробовал большинство решений, но ни один из них не подходит к моей проблеме. Ссылаясь на эту страницу: https://docs.oracle.com/javase/tutorial/uiswing/components/table.html

Я хочу создать JTable для чтения из объектов из моего пользовательского класса. На начальном этапе я хочу проверить зацикливание с помощью JTable. Как следует:

Object[][] tripsData =new Object[3][6];
for(int j=0; j< 3;j++)
        for(int i =0; i< 6;i++)
        {   tripsData[j][i]= new Object[] {"Kathy", "Smith","wait",  "Snowboarding", 5, "false"};
        }

Код работает нормально, кроме вывода, который он показывает так:

 [Ljava.lang.Object;@41488024
 [Ljava.lang.Object;@54c83ae1
 [Ljava.lang.Object;@161a4f2c

Я пытался использовать toString () и valueOf (), но то же самое. Любое предложение для решения

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Проблема в том, что вы создаете трехмерный массив вместо нужного вам 2D. В вашем коде вы используете

tripsData[j][i]= new Object[] {"Kathy", "Smith","wait",  "Snowboarding", 5, "false"};

, таким образом, "Kathy" в результирующем Object имеет индекс [j][i][0], "Smith" имеет индекс [j][i][1] и так далее. Заполните ваш массив так:

Object[][] tripsData =new Object[3][6];
        for(int j=0; j< 3;j++) {
            tripsData[j] = new Object[]{"Kathy", "Smith", "wait", "Snowboarding", 5, "false"};
        }

Тогда и это

    for (Object[] row : tripsData) {
        for (int j = 0; j < data[0].length; j++) {
            System.out.print(row[j]);
            System.out.print("\t");
        }
        System.out.print("\n");
    }

и это

for (Object[] row : tripsData) {
    System.out.println(Arrays.toString(row));
}

будет работать нормально

0 голосов

Вы можете использовать Arrays.toString(), что-то похожее на этот фрагмент:

    Object[][] arr = new Object[2][2];
    arr[0][0] = "00";
    arr[0][1] = "01";
    arr[1][0] = "10";
    arr[1][1] = "11";
    System.out.println(Arrays.toString(arr[0]));
    System.out.println(Arrays.toString(arr[1]));

Это напечатает

[00, 01]
[10, 11]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...