无法在Swing中获取JTable中的列名

时间:2014-01-11 15:17:23

标签: java swing jtable

JTable table = new JTable(data,columnNames);
JScrollPane pane = new JScrollPane(table);
this.add(pane);
this.add(table);

我的数据显示但列名未显示在顶部。

2 个答案:

答案 0 :(得分:3)

组件只能有一个父组件。

JScrollPane pane = new JScrollPane(table);
this.add(pane);
this.add(table);

首先将表格添加到滚动窗格的视口中,这很好,因为这会导致在GUI显示时自动显示表格标题。

然后你将表直接添加到框架,这是不好的,因为它不能再显示在滚动窗格中。

摆脱:

//this.add(table);

然后包含该表格的滚动窗格将在框架上正确显示。

答案 1 :(得分:0)

看一下这个例子

import java.awt.Color;
import javax.swing.*;
public class table extends JFrame{

    public table() {
        setSize(600, 300);
        String[] columnNames = {"A", "B", "C"};
        Object[][] data = {
            {"Moni", "adsad", 2},
            {"Jhon", "ewrewr", 4},
            {"Max", "zxczxc", 6}
        };

        JTable table = new JTable(data, columnNames);
        JScrollPane tableSP = new JScrollPane(table);

        JPanel tablePanel = new JPanel();
        tablePanel.add(tableSP);
        tablePanel.setBackground(Color.red);

        add(tablePanel);
        setTitle("Marks");

        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                table ex = new table();
                ex.setVisible(true);
            }
        });
    }
}