Попытка ввода массива double [] [] в JTable - PullRequest
0 голосов
/ 02 марта 2020

Я пытаюсь ввести массив чисел в JTable, но возникают проблемы. А именно, ошибка 'java .lang.double [] [] не может быть преобразована в javax.swing.TableModel. очень полезно спасибо.

// Data to be displayed in the JTable, 
  double[][]  mile = { 
  {1}, 
  {2},
  {3 }, 
  {4 },
  {5 },
  {6 },
  {7 },
  {8 },
  {9 },
  {10 },
  {11 },
  {12 },
  {13 },
  {14 },
  {15 },
  {16 },
  {17 },
  {18 },
  {19 },
  {20 },
  }; 


  double[][]  kilo = { 
  { 1.609 }, 
  { 3.218 },
  { 4.827 }, 
  { 6.436 },
  { 8.045 },
  { 9.654  },
  { 11.263 },
  { 12.872 },
  { 14.481 },
  { 16.09 },
  { 17.699 },
  { 19.308 },
  { 20.917 },
  { 22.526 },
  { 24.135 },
  { 25.825 },
  { 27.434 },
  { 29.043 },
  { 30.654 },
  { 32.261 },
  }; 


  // Column Names for the table.
  String[] titles = { "Miles", "Kilometers" }; 

  // Create the table which is going to display the information.
  JTable table = new JTable(mile, kilo, titles);
  JScrollPane scrollPane = new JScrollPane(table);
  scrollPane.setBounds(20,20,650,250);
  table.setFillsViewportHeight(true);
  infoPanel.add(scrollPane);

1 Ответ

0 голосов
/ 02 марта 2020

Как уже упоминалось в комментариях, JTable не предоставляет нужный конструктор. Со своей стороны я бы использовал следующий конструктор: public JTable(final Object[][] rowData, final Object[] columnNames)

Но для этого вы должны настроить инициализацию данных. Код будет выглядеть так:

    // Data to be displayed in the JTable,
    double[] mile = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
    double[] kilo = { 1.609, 3.218, 4.827, 6.436, 8.045, 9.654, 11.263, 12.872, 14.481, 16.09, 17.699, 19.308, 20.917, 22.526, 24.135, 25.825, 27.434, 29.043, 30.654, 32.261 };

    Double[][] tableData = new Double[mile.length][2];

    for (int i = 0; i < mile.length; i++) {
        tableData[i][0] = mile[i];
        tableData[i][1] = kilo[i];
    }


    // Column Names for the table.
    String[] titles = {"Miles", "Kilometers"};

    // Create the table which is going to display the information.
    JTable table = new JTable(tableData, titles);
    table.setFillsViewportHeight(true);
    JScrollPane scrollPane = new JScrollPane(table);
    scrollPane.setBounds(20, 20, 650, 250);
    infoPanel.add(scrollPane);
...