JTable标头没有显示

Pha*_*Kid 7 java database methods swing jtable

JTable标头没有显示......

即使将它添加到像JScrollPane这样的容器中,我的JTable标题也不会显示...告诉我为什么会发生这种情况,如何解决它或调试它...我在互联网上搜索,所有他们说的是为你的jtable添加容器,我但是仍然我的标题没有显示.


public void table(){

try{

        rs = stat.executeQuery("SELECT * FROM payments;");

        Vector<String> header = new Vector<String>();

        header.add("PAYMENT"); 
        header.add("AMOUNT");
        header.add("MODIFIER");
        header.add("DATE MODIFIED");

        Vector<Vector<Object>> data = new  Vector<Vector<Object>>();

        while(rs.next()) {

            Vector<Object> row = new Vector<Object>();

            row.add(rs.getString("description"));
            row.add(rs.getString("amount")); 
            row.add(rs.getString("remarks")); 
            row.add(rs.getString("date"));


            data.add(row);

        } // loop

        table = new JTable(data, header);

        JScrollPane scrollPane = new JScrollPane(table);

        panel.add(table);
        panel.add(table.getTableHeader());
        //panel.removeAll();
        //scroll.add(table);
        validate();

    }catch(Exception e){
        System.out.println("Error in table: "+e);
    }//try and catch

}
Run Code Online (Sandbox Code Playgroud)

Mad*_*mer 11

首先删除

panel.add(table.getTableHeader());
Run Code Online (Sandbox Code Playgroud)

JTable设计以增加它的头就可以了JScrollPane.组件的实例只能属于一个父/容器,上面的行是从滚动窗格中删除它

另外,改变这个......

panel.add(table);
Run Code Online (Sandbox Code Playgroud)

panel.add(scrollPane);
Run Code Online (Sandbox Code Playgroud)


Kun*_*dan 5

我遇到的同样问题您必须将JTable添加到JScrollPane然后将JscrollPane添加到JFrame,例如

JTable table = new JTable();
JScrollPane scrollPane= new  JScrollPane(table);
frame.add(scrollPane);
Run Code Online (Sandbox Code Playgroud)