无法填充使用 IntelliJ GUI 设计器创建的 JTable 组件

use*_*erX 0 java user-interface swing jtable intellij-idea

我有一个在 IntelliJ 的 GUI 设计器中制作的 JTable 组件。该类绑定到 GUI 窗体并且编译没有问题,但表保持为空。我也尝试使用其他一些代码,但我对 Java 有点陌生,真的很想知道这个问题的答案。请不要给我一半的答案或将我指向一个页面来弄清楚。我在这里是因为我确实尝试过。

package com.company;

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

/**
 * Created by User on 3/8/2016.
 */
public class TableGUI {
    private static JFrame frame;
    private JTable table1;
    private JPanel panel1;

    public TableGUI() {
        DefaultTableModel model = new DefaultTableModel();

        table1.setAutoCreateRowSorter(true);
        table1.setFillsViewportHeight(true);
        table1.setPreferredScrollableViewportSize(new Dimension(550, 200));
        model.addColumn("Id");
        model.addColumn("First Name");
        model.addColumn("Last Name");
        model.addColumn("Company Name");
        table1.setModel(model);
    }

    public static void main(String[] args) {
        frame = new JFrame("TableGUI");
        frame.setContentPane(new TableGUI().panel1);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
        frame.setSize(new Dimension(600, 400));
    }
}
Run Code Online (Sandbox Code Playgroud)

use*_*erX 5

我想通了,答案是我缺少JScrollPane。我不得不通过 IntelliJ 设计器放入一个名为JScrollPane的组件并将JTable放入其中。这允许列名显示在 JTable 上。