Topic: 为什么我的JTable没有表头呢?

  Print this page

1.为什么我的JTable没有表头呢? Copy to clipboard
Posted by: herong
Posted on: 2006-03-25 20:11


import javax.swing.*;
import javax.swing.table.*;

public class Main {
public void start() {
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JTable table = new JTable(new TestTableModel());

frame.add(table);

frame.pack();
frame.setVisible(true);

return;
}

private class TestTableModel extends AbstractTableModel {
public Object getValueAt(int rowIndex, int columnIndex) {
return rowIndex * columnIndex;
}

public int getColumnCount() {
return 7;
}

public int getRowCount() {
return 7;
}
}

public static void main(String[] args) {
new Main().start();
}
}


结果运行出来之后没有表头(就是可以用鼠标调整列宽的那行),请问是怎么回事呢?

2.Re:为什么我的JTable没有表头呢? [Re: herong] Copy to clipboard
Posted by: lsyl
Posted on: 2006-03-25 22:47

这样写就可以了

JTable table = new JTable(new TestTableModel());
JScrollPane sp=new JScrollPane(table );
frame.add(sp);

3.Re:为什么我的JTable没有表头呢? [Re: herong] Copy to clipboard
Posted by: herong
Posted on: 2006-03-26 11:12

可以了,谢谢:)

可是为什么我这样写就整个表格都显示不出来呢?

JScrollPane sp = new JScrollPane();
sp.add(table);
frame.add(sp);

我是新手,还请多帮忙:)

4.Re:为什么我的JTable没有表头呢? [Re: herong] Copy to clipboard
Posted by: liuzhenke15
Posted on: 2006-03-30 13:17

JTable的设计者把显示表头的功能交给JScrollPane,这是因为除了JTable外,其它的Component都可以放在JScrollPane中,其显示逻辑是一样的。但这也同时增加了对使用过VB\VC\BC\DELPHI等出学者的困惑。

另外,如果您的程序连个表格都显示不出来,请尝试:
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(sp,BorderLayout.CENTER);


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923