JTable table = new JTable(data,columnNames);
JScrollPane pane = new JScrollPane(table);
this.add(pane);
this.add(table);
我的数据显示但列名未显示在顶部。
答案 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);
}
});
}
}