当前位置:  技术问答>java相关

求救:java中如何实现把ResultSet中的记录显示到JTable控件中?

    来源: 互联网  发布时间:2015-11-05

    本文导语:  在Java核心技术(卷二)中介绍了通过建立表模型实现表中显示数据的思想,即继承一个AbstractTableModel类(假设为model),实现其中的方法,如getRowCount(),getColumnCount(),getValueAt() 等等,然后调用Java的构造函数JTable table=new...

在Java核心技术(卷二)中介绍了通过建立表模型实现表中显示数据的思想,即继承一个AbstractTableModel类(假设为model),实现其中的方法,如getRowCount(),getColumnCount(),getValueAt() 等等,然后调用Java的构造函数JTable table=new JTable(model);
  令我不解的是,这样就能实现将结果集中的数据放到表格中了吗?也没看出用了什么方法啊。model中实现的诸如getRowCount()之类的方法,是为具体操作表格中的数据,并没有因此把数据放进表格吧

   我大脑有些混乱了,还望高手们不惜赐教!!!

   另外还有一个白痴性问题:表格中的第一行是0还是1?ResultSet中的第一行呢?


|
> 2) You can build your own table model which will be queried by JTable for data in each cell.How to build a table model? Table model will be a class which inherits AbstractTableModel class and will override at least three of its methods viz.
> public int getColumnCount ( ) ;
> public int getRowCount ( ) ;
> public Object getValueAt ( int rowNo, int coulnmNo ) ;
> If you just override these three methods then your column's header will be given as A, B, C ... . So if you want to supply your own column headers ( certainly you would ) then you need to override another method 
> public String getColumnName ( int col ) ;
> By methods names you can guess what do you need to write in those methods. However, I will give you hints for every methods. Your table model class will be as follows.
> class MalaTableModel extends AbstractTableModel {
> private ResultSet rs ;
> private ResultSetMetaData rsmd ; // You need to populate it
> public MalaTableModel ( ResultSet rs ) {
> this.rs = rs ;
> // Get the meta data for result set here
> }
> public int getRowCount ( ) { 
> // If you are using ODBC2.0 then you can get the
> // row count from a result set as follows
> rs.last ( ) ;
> int rowCount = rs.getRow ( ) ;
> return rowCount ;
> // if rs.last ( ) is not supported then 
> /*
> Keep scrolling from 1st to last row and return the total 
> no of rows
> */
> }
> public int getColumnCount ( ) {
> return rsmd.getColumnCount ( ) ;
> }
> public getValueAt ( int row, int col ) {
> // Scroll the result set to the row
> rs.absolute ( row + 1 ) ;
> return rs.getObject ( col + 1 ) ;
> }
> public String getColumnName ( int col ) {
> return rsmd.getColumnName ( col + 1 ) ;
> }
> }


|
ResultSet rst = conn.exe_select(sqlstr);
  Vector vdata = new Vector();
  Vector vname = new Vector();
  vname.add("column1");
  vname.add("column2");
  vname.add("column3");
        Vector vrow = null;
        while (rst.next ()) {
          vrow = new Vector();
          vrow.add (rst.getString (1));
          vrow.add (rst.getString (2));
          vrow.add (rst.getString (3));
          vdata.add (vrow);
        }
     DefaultTableModel model = new DefaultTableModel(vdata, vname);
        jTable.setModel (model);

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求救!求救!紧急求救!为什么更新不了所指定的内容?
  • 求救!!!硬件高请进、、、、、、(十万火急,高分求救。)
  • 求救求救!!
  • 求救啊 高分求救 UNIX下关于进程通讯的问题~
  • 求救!!!求救!!!机器不能正常启动
  • 关于jdbc,求救求救!在线等待,马上给分
  • 紧急求救,root用户无权限删除文件
  • 晕,特晕...求救...
  • 高分求救~~如何取得linux下进程完整命令行字符串,就是的ps -ef 完整的全路径的CMD那一列,求救!!!!附现在的代码
  • 求救!weblogic6.0后台运行正确,前台页面跳转或调用其他页面时出“页面无法显示错误”
  • 求救:java里如何取整一个浮点数(不做四舍五入)
  • 紧急求救!!
  • Linux下无法启动apache 高分求救!在线等待
  • 紧急求救 我用freebsd通过smbfs连接win2000的一些问题 (分不够可加)
  • 紧急求救 我用freebsd通过smbfs连接win2000的一些问题
  • Linux8.0 修改字符集后,再次进系统,无图形界面问题。。。求救。。 iis7站长之家
  • 求救!!在Redhat7.3下安装scim0.9.3怎么安装?
  • Linux8.0 修改字符集后,再次进系统,无图形界面问题。。。求救。。
  • SUSE网络打印机问题,在线等,求救!!
  • 散分一百,紧急求救!ROOT密码忘记


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3