专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » 列名无效:为什么列名不显示呢? »正文

列名无效:为什么列名不显示呢?

来源: 发布时间:星期一, 2008年11月24日 浏览:188次 评论:0
jtree.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e)
{
JTree jtree=(JTree) e.getSource();

int clickno=jtree.getRowForLocation(e.getX(), e.getY());


if(clickno!=-1)
{

TreePath treepath=jtree.getPathForRow(clickno);
if(treepath.getPathCount()==3)
{

TreePath parentpath=treepath.getParentPath();
sa=parentpath.toString().substring(7,8);//班级名
//System.out.println(sa);
TreeNode treenode=(TreeNode) treepath.getLastPathComponent();
sb=treenode.toString();//课程名
//System.out.println(sb);
defaulttablemodel=new DefaultTableModel();

defaulttablemodel.addColumn("学生学号");
defaulttablemodel.addColumn("学生姓名");
defaulttablemodel.addColumn("该科成绩");

try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
c.getConnection("jdbc:odbc:studentinfo");
st=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
// System.out.println(combo2.getSelectedItem().toString());
rs=st.executeQuery("select student.Sno,student.Sname,sc.Grade from student,SC where student.Classno='"+sa+"' and student.Sno=sc.Sno and sc.Cno in (select Cno from course where Cname='"+sb+"' )");
//System.out.println(rs.next());
while(rs.next())
{


data[0]=rs.getString("Sno");
data[1]=rs.getString("Sname");
data[2]=rs.getString("Grade");
System.out.println("here");
System.out.println(data[0].toString()+data[1]+data[2]);
defaulttablemodel.addRow(data);


}
// rs=st.executeQuery("select Cno from course where Cname='"+combo2.getSelectedItem().toString()+"'");
// if(rs.next())

// sss=rs.getString("Cno").toString();
//System.out.println(sss);


}catch(Exception ee)
{
ee.printStackTrace();
JOptionPane.showMessageDialog(null,"数据库连接失败");
}


table=new JTable(defaulttablemodel);
//table.getTableHeader().revalidate();
panel.add(String.valueOf(i),table);
cardlayout.show(panel, String.valueOf(i));
i++;
//add(table,BorderLayout.CENTER);

}


}

}
});




这样的显示的表中 没有列名
但是将panel.add(String.valueOf(i),table);
改为panel.add(String.valueOf(i),new JScrollPane(table));
列名居然出现了!

不知道怎么回事 深奥啊 迷茫啊 无奈啊。。。。。。


找到答案了:
JScrollPane会自动取得Column Header
如果你不想用JScrollPane,要解决这个问题,必须将程序修改如下:
JTable table=new JTable(p,n);
table.setPreferredScrollableViewportSize(new Dimension(550,30));
panel.add(table.getTableHeader(),BorderLayout.NORTH);
paneladd(table,BorderLayout.CENTER);

运行结果就会跟之前一样有行标题了.
上面的运行结果就会跟发现,每个字段的宽度都昍
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: