Как я могу добавлять строки в DefaultTableModel одну за другой? - PullRequest
0 голосов
/ 05 мая 2020

Я открываю txt-файл URL-адресов с помощью Java, сохраняю URL-адреса в списке, а затем добавляю URL-адреса и выдает коды состояния в JTable. Когда я обрабатываю txt-файл с 5 URL-адресами, результат отображается через 2 секунды. Когда у меня есть файл с 20 URL-адресами, мне приходится ждать полминуты. Я могу представить, что произойдет с 200 URL-адресами. Есть ли возможность распечатать строки в таблице последовательно, не дожидаясь конца?

private void urlsToTable(List<String> urls) {
        ((DefaultTableCellRenderer)urlTable.getTableHeader().getDefaultRenderer()).setHorizontalAlignment(JLabel.CENTER);
        dtm.addColumn("#");
        dtm.addColumn("URL");
        dtm.addColumn("Status code");
        dtm.addColumn("Explanation");
        DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
        centerRenderer.setHorizontalAlignment(JLabel.CENTER);
        urlTable.setRowHeight(40);
        TableColumnModel columnModel = urlTable.getColumnModel();
        columnModel.getColumn(0).setMaxWidth(40);
        columnModel.getColumn(2).setMaxWidth(60);
        columnModel.getColumn(0).setCellRenderer(centerRenderer);
        columnModel.getColumn(1).setCellRenderer(centerRenderer);
        columnModel.getColumn(2).setCellRenderer(centerRenderer);
        columnModel.getColumn(3).setCellRenderer(centerRenderer);
        int number = 1;
        for (String url : urls) {
            Object[] obj = new Object[4];
            obj[0] = number;
            obj[1] = url;
            obj[2] = getResponseCode(url);
            obj[3] = statusCodes.get(getResponseCode(url));
            dtm.addRow(obj);
            number++;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...