Java 我的jTable没有显示任何列标题

Java 我的jTable没有显示任何列标题,java,swing,jtable,windowbuilder,jtableheader,Java,Swing,Jtable,Windowbuilder,Jtableheader,我试图在我的类MyPage中添加一个jTable,该类中有一个选项卡窗格。我可以在其中调用我的jTable,表完全可见,但列标题不可见。我甚至尝试在滚动窗格中添加我的表,但这也帮不了我。另外,我正在使用Eclipse,我不认为有必要告诉大家这一点,只是为了让大家都知道。这是我的类MyPage和其中的表代码 Public MyPage(){ JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); tabbedPane.s

我试图在我的类MyPage中添加一个jTable,该类中有一个选项卡窗格。我可以在其中调用我的jTable,表完全可见,但列标题不可见。我甚至尝试在滚动窗格中添加我的表,但这也帮不了我。另外,我正在使用Eclipse,我不认为有必要告诉大家这一点,只是为了让大家都知道。这是我的类MyPage和其中的表代码

Public MyPage(){
    JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
    tabbedPane.setBorder(new LineBorder(new Color(0, 0, 0), 2));
    tabbedPane.setBounds(10, 122, 744, 386);
    contentPane.add(tabbedPane);

    JPanel panel_4 = new JPanel();
    tabbedPane.addTab("Customers list", null, panel_4, null);
    panel_4.setLayout(null);

    JScrollPane scrollPane = new JScrollPane();
    scrollPane.setBounds(0, 0, 735, 354);
    scrollPane.setLayout(null);

    table = new JTable();
    table.setGridColor(new Color(0, 0, 0));
    table.setBounds(10, 10, 715, 332);

    panel_4.add(scrollPane.add(table));

    conn = javaconnect.ConncrDB();
    Table(); 
    }
这是我调用数据库表项的函数

public void Table() {
    try {

        String sql = "select * From Balances";
        pst = conn.prepareStatement(sql);
        rs = pst.executeQuery();
        table.setModel(DbUtils.resultSetToTableModel(rs));

    } catch (Exception e) {
        JDialog dialog = new JDialog();
        dialog.setAlwaysOnTop(true);    
        JOptionPane.showMessageDialog(dialog, e );
    }finally {
        try {
            rs.close();
            pst.close();
        } catch (Exception e2) {
            JDialog dialog = new JDialog();
            dialog.setAlwaysOnTop(true);    
            JOptionPane.showMessageDialog(dialog, e2 );
        }
    }
} 
我已经尝试了在Internet上找到的所有可能的方法来解决它,但表中没有显示任何列标题,但当我在windows builder设计窗口中的jTable属性中打开模型窗口时,会显示列标题

我已经尝试了在互联网上找到的所有可能的方法来解决这个问题

期待所有告诉你的答案,不要使用
null
layouts

scrollPane.setLayout(null);
是解决你问题的关键。
JScrollPane
有自己的布局管理器,其中包括列标题视图

我强烈建议你花点时间通读,这将节省你很多时间,并有助于防止许多其他“不寻常”问题

接下来

panel_4.add(scrollPane.add(table));
不是向
JScrollPane
添加组件的方式。如果您仔细查看,它们将显示如何使用
JScrollPane

JScrollPane
是一个不寻常的容器,因为您实际上并没有向其中“添加”任何内容,而是将组件“包装”在其中

我更喜欢使用构造函数将“视图”传递给
JScrollPane
,但您也可以使用

scrollPane.setViewportView(table);
panel_4.add(scrollPane);
所以,有点像

Public MyPage(){
    JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
    tabbedPane.setBorder(new LineBorder(new Color(0, 0, 0), 2));
    contentPane.setLayout(new BorderLayout());
    contentPane.add(tabbedPane);

    // Seems pointless, but hay
    JPanel panel_4 = new JPanel(new BorderLayout());
    tabbedPane.addTab("Customers list", panel_4);

    table = new JTable();
    table.setGridColor(new Color(0, 0, 0));
    JScrollPane scrollPane = new JScrollPane(table);

    panel_4.add(scrollPane);

    conn = javaconnect.ConncrDB();
    Table(); 
}

99.9%的问题应该解决

@DeepAnshumarya阅读教程-不要使用window builder或任何其他“GUI生成器”,如果你不知道自己在做什么,他们会跟你捣乱doing@DeepanshuMourya如果有效,请投票支持这个答案,并将其标记为有用