试图在 JScrollPane 的 JTable 中获取二维数组 Java

Trying to get two dimensional Array in JTable in JScrollPanel Java

我的计划是将一个二维数组放入JTable放入JScrollPanel。 Table 已经显示了二维数组的数据。问题是当我将它添加到 jscrollpanel 时 table 不会显示(滚动面板虽然可见但为空。当我将 table 放在 JPanel(不是 jscrollpanel)中时它确实有效。但在使用 jscrollpanel 时不是。

有人知道吗?

package arraytablestable;

import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;

public class ArrayTablesTable extends JFrame {
public static JFrame frame;


public static void main(String[] args) {    

    frame = new JFrame();
    frame.setSize(1280,720);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setTitle("Array Table 7 in Tables");
    frame.setContentPane(new Paneel());
    frame.setVisible(true);
}

private static class Paneel extends JPanel {

    // Declareren
    public static JTable Table;

    public JTableHeader tblHeader;
    public TableModel tblModel;
    public Object[] columnNames;
    public static Object[][] Data;
    public int Resultaat, a ,i ;
    public JScrollPane jScrollPane;



    public Paneel() {
    this.setLayout(new GridLayout(1,1));
    // Initialiseren
    Data = new Object[200][1];
    columnNames = new Object[]{"Product","Resultaat"};


    // Model maken & importen
    tblModel = new DefaultTableModel(columnNames,0);
    Table = new JTable(tblModel);

    // Table Eigenschaooen
//      tblHeader = Table.getTableHeader();     
//      tblHeader.setBackground(Color.decode("#a181a1"));
//      tblHeader.setForeground(Color.decode("#1b1b1b"));
//      Table.setFocusable(false);
//      Table.setRowSelectionAllowed(false);

    Data[0] = new String[100];
    Data[1] = new Integer[100];



    // For Loop
        for(i = 0; i < 100; i++){ 
        Data[0][i]= "7 x " + i;
        Resultaat = 7 * i;
        Data[1][i]= Resultaat;

        TabelVullen(new Object[]{Data[0][i],Data[1][i]});

    }

        System.out.println("object: " + Data[0][4]);

        this.add(jScrollPane);

    }
    public void TabelVullen(Object[] data){
    ((DefaultTableModel)Table.getModel()).addRow(data);

    // Components -> Panel

       jScrollPane = new JScrollPane(Table);
       jScrollPane.add(Table);


    }
}
}
   jScrollPane = new JScrollPane(Table);

上面一行是正确的。它创建滚动窗格并将 table 添加到滚动窗格的 "viewport"。

   //jScrollPane.add(Table);

上面一行是不正确的。它从滚动窗格的视口中删除 table。切勿使用滚动窗格的 add(...) 方法。必须将所有组件添加到视口。

了解遵循 Java 命名约定。变量名称不应以大写字符开头。 "Table" 应该是 "table"。所有其他名称都遵循此标准。保持一致!!!

此外,方法名称不应以大写字符 (TabelVullen) 开头。