JTable 列名不显示

ssgreat 2008-11-21 04:55:53

我写了个简单的代码,大体如下,但是JTable不显示列名,不知道怎么回事,高手帮忙看一下阿

JTable result_Tab = new JTable(10,10);
result_Tab.setBounds(10,10,600,600);
TableColumnModel columnmodel = result_Tab.getColumnModel();
for(int i =0; i< 10; i++)
{
columnmodel.getColumn(i).setHeaderValue("aaa");
}
JCrollPane Pane= new JCrollPane();
Pane.add(result_Tab);
...全文
891 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
木易_颖 2012-07-25
  • 打赏
  • 举报
回复
JPanel p=new JPanel(new BorderLayout());
JTable table=new JTable(rowData, columnNames);
p.add(table.getTableHeader(),BorderLayout.PAGE_START);
p.add(table,BorderLayout.CENTER);
这样就可以不加JScrollPane时也能显示表头了
Gordon.Shao 2008-12-07
  • 打赏
  • 举报
回复
你把它放到JScrollPane就可以了
testman 2008-12-05
  • 打赏
  • 举报
回复
该帖包含附件:http://d.download.csdn.net/down/840213/housanqishi
testman 2008-12-05
  • 打赏
  • 举报
回复
我的这个不行啊
帮帮我

import javax.swing.*;
import java.awt.*;
import java.sql.*;
import java.awt.event.*;
/*
功能实现单击“显示”按钮
显示带标题和滚动条的表格
*/
public class tables
{
public static void main(String args[])
{ WinTable Win=new WinTable();
}
}
class WinTable extends JFrame implements ActionListener
{

JTable table;//表格
Object a[][];//表格内容数组
Object name[]={ "商品编号", "名称","单价","数量","所属类别","易燃","易碎","易挥发"};//标题



JButton button;

JScrollPane show;//放置表格的容器

WinTable()
{
a=new Object[20][8];



button=new JButton("显示");

table=new JTable(a,name);

button.addActionListener(this);



Container con=getContentPane();
show=new JScrollPane(table);


getContentPane().add(show,BorderLayout.CENTER);

table.setVisible(false);
show.setVisible(true);


con.add(button,BorderLayout.SOUTH);
setSize(800,400);
setVisible(true);
validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
public void actionPerformed(ActionEvent e)
{
Connection con;
Statement sql;
ResultSet rs;
int cols=0;
if(e.getSource()==button){

try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e2){
System.out.println(" ClassNotFoundException");
}

try { con=DriverManager.getConnection("jdbc:odbc:shop","","");
sql=con.createStatement();
rs=sql.executeQuery("SELECT * FROM shop");

while(rs.next())
{ String id=rs.getString(1);
String name=rs.getString(2);
String price=rs.getString(3);
int count=rs.getInt("count");
String suoshu=rs.getString("suoshu");
boolean zy1=rs.getBoolean("zy1");
boolean zy2=rs.getBoolean("zy2");
boolean zy3=rs.getBoolean("zy3");


a[cols][0]=id;
a[cols][1]=name;
a[cols][2]=price;
a[cols][3]=count;
a[cols][4]=suoshu;



if(zy1==true){a[cols][5]="是";}
else a[cols][1]="否";

if(zy2==true){a[cols][6]="是";}
else a[cols][1]="否";

if(zy3==true){a[cols++][7]="是";}
else a[cols++][1]="否";



}
con.close();
}
catch(SQLException e3)
{ System.out.println(e3);
}


table.setVisible(true);
show.setVisible(true);
table.repaint();

//show.validate();
}

}
}
jayray007 2008-11-25
  • 打赏
  • 举报
回复

String[] col = {"姓名", "性别", "年龄", "身高", "地址", "学历"}; //定义表头
//定义一个模板并重写其中单元格编辑状态为不可编辑
public DefaultTableModel mm = new DefaultTableModel(col, 0) {
public boolean isCellEditable(int rowindex, int columnindex) {
/**
* 指定单元格编辑状态
* if(rowindex == 3){
return false;
}
*
*/
return false; //全部不可编辑
}
};

JTable jtable = new JTable(mm); //新建一个表格
JScrollPane jscrollpane = new JScrollPane(jtable); //将表格加个滚动条
铑枪--突廆孒 2008-11-25
  • 打赏
  • 举报
回复
JScrollPane sp=new JScrollPane(table);
frame.add(sp);
lovehope 2008-11-24
  • 打赏
  • 举报
回复
String[] columnNames = {"列名1","列名2","列名3"};
JTable table = new JTable();
((DefaultTableModel)table.getModel()).setColumnIdentifiers(columnNames);
CTea321 2008-11-24
  • 打赏
  • 举报
回复
的确,表头搞这么复杂
yanguango 2008-11-23
  • 打赏
  • 举报
回复
对头了,需要放在一个JScrollPane中
qusic 2008-11-22
  • 打赏
  • 举报
回复
构造JTable对象时把表头字符串传进去不就行了
JTable(Object[][] rowData, Object[] columnNames)
rowData使用null
dawn023 2008-11-22
  • 打赏
  • 举报
回复
构造JTable时一定要把JTable放到JScrollPane中才能显示列头。
noenoughmemory 2008-11-22
  • 打赏
  • 举报
回复
不懂,up
qap22 2008-11-22
  • 打赏
  • 举报
回复
不懂,up
goodmrning 2008-11-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qap22 的回复:]
mark
[/Quote]
顶!
qap22 2008-11-21
  • 打赏
  • 举报
回复
mark
dawn023 2008-11-21
  • 打赏
  • 举报
回复
你把它放到JScrollPane就可以了。
xuzhenqinandy 2008-11-21
  • 打赏
  • 举报
回复
设置表头你不用搞的这么复杂吧,有一个表头对象呀,你直接设置表头对象就可以。如果你把表和表头放在JScrolPane面板上面则不用把表头和表关联,如果不放在JScrolPane上面则需要把表和表头关联

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧