Как данные с ArrayList поместить в JTable? - Java

Узнай цену своей работы

Формулировка задачи:

Всем привет! Есть 4 ArrayLista T, La, Lo, A. Как данные из этих листов поместить в JTable, чтобы каждый лист был в отдельной колонке? Код заполнение Arraylist из файла, а сам файл на рис. 1:
JFrame frame1 = new JFrame("TableWindow");
        JTable table = new JTable();
        table.setSize(800,600);
        frame1.setSize(800, 600);
        frame1.setLocationRelativeTo(null);
        frame1.add(table);
 
        FileNameExtensionFilter fileFilter = new FileNameExtensionFilter("*.txt", "txt");
 
        JFileChooser fc = new JFileChooser();
        fc.addChoosableFileFilter(fileFilter);
        fc.setCurrentDirectory(new java.io.File("C:/", "D:/"));
        fc.setDialogTitle("Блокнотец");
        fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
 
        if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
            try {
                Scanner sc = new Scanner(fc.getSelectedFile());
 
                while (sc.hasNextLine()) {
                    String s = sc.nextLine();
                    if (s.contains("GPGGA")) {
                        T.add(s.split(",")[1]);
                        La.add(s.split(",")[2]);
                        Lo.add(s.split(",")[4]);
                        A.add(s.split(",")[9]);
                    }
                }
 
                sc.close();
            }  catch (IOException e) {
                JOptionPane.showMessageDialog(null, "File not Found", "Error", 3);
            }
            catch (NullPointerException e){
 
            }
            frame1.setVisible(true);
        }
        else{
            frame1.setVisible(false);
        }

Решение задачи: «Как данные с ArrayList поместить в JTable?»

textual
Листинг программы
ArrayList<String>[] arr = new ArrayList[]{T, La, Lo, A};
 
        JTable table = new JTable(Arrays.stream(arr).max(Comparator.comparing(ArrayList::size)).get().size(), 4);
 
        for (int i = 0; i < table.getModel().getColumnCount(); i++) {
            for (int j = 0; j < arr[i].size(); j++) {
                table.getModel().setValueAt(arr[i].get(j), j, i);
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5
Похожие ответы