首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

小妹小弟我不知道该如何显示jtable(与sqlserver连接)啊哪位高手能帮小弟我看看 多谢了

2012-03-22 
小妹我不知道该怎么显示jtable(与sqlserver连接)啊,谁能帮我看看 谢谢了!在线等启动类:importjava.awt.*i

小妹我不知道该怎么显示jtable(与sqlserver连接)啊,谁能帮我看看 谢谢了!在线等
启动类:

import   java.awt.*;
import   javax.swing.*;
import   java.sql.*;
import   java.awt.event.*;
import   javax.swing.table.*;
import   java.util.*;
class   Demo   extends   JFrame   implements   ActionListener
{
private   ResultSet   rs;
JButton   jb=null;
JPanel   jp1,jp2;
JScrollPane   jsp=new   JScrollPane();
JTable   jtb;
Vector   row=new   Vector();
Vector   col=new   Vector();
DefaultTableModel   dtm=new   DefaultTableModel();
public   Demo()
{
      jtb=new   JTable(dtm);
    jtb.setPreferredScrollableViewportSize(new   Dimension(200,200));
      jsp.add(jtb);
      jb=new   JButton( "ok ");
      jb.addActionListener(this);
      jp1=new   JPanel();
      jp2=new   JPanel();
      jp2.setPreferredSize(new   Dimension(300,300));
      jsp.setPreferredSize(new   Dimension(300,300));
      jp2.setBackground(Color.red);
        jp2.setLayout(new   BorderLayout());
        jp1.add(jb);
      this.add(jp1, "North ");
      this.add(jp2);
      this.add(jsp);
      this.setSize(400,500);
      this.show();
             
       
}
public   void   actionPerformed(ActionEvent   e)
{


if(e.getSource()==jb)
{      
  ConDatabase   base=new   ConDatabase( "select   *   from   mer ");
          rs=base.getrs();
      try  
      {
            ResultSetMetaData   rsmd=rs.getMetaData();
            for   (int   i   =   1;   i <=rsmd.getColumnCount();   i++)
            {
              col.add(rsmd.getColumnName(i));
            }
            while(rs.next())
            {
              Vector   v=new   Vector();
              for   (int   i   =   1;   i <=6;   i++)
              {
              v.add(rs.getString(i));
              }
              row.add(v);
            }
            dtm.setDataVector(row,col);
            System.out.println   ( "ddddddddd ");        
              }
            catch   (Exception   ex)
            {
          System.out.println   (ex.getMessage());


            }      
        }
}


public   static   void   main(String[]   args)
        {
            new   Demo();
           
           
        }
}

//数据库联接的类:


import   java.sql.*;

public   class   ConDatabase
{
        ResultSet   rs;
public   ConDatabase(String   str)
{
try  
{
      Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ");
      java.sql.Connection   conn   =   java.sql.DriverManager.getConnection( "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=mer ", "sa ", " ");
      java.sql.Statement   sta   =   conn.createStatement();
        rs=sta.executeQuery(str);
     
        }
        catch   (Exception   ex)  
        {
        System.out.println   (ex.getMessage());
        }
}
public   ResultSet   getrs()
{
return   rs;
}
}

//怎么显示不出来啊,谢谢了!在线等




[解决办法]

给大家介绍个技术群

大家一起学习,一起提高

21189212
[解决办法]
import java.awt.*;
import javax.swing.*;
import java.sql.*;
import java.awt.event.*;
import javax.swing.table.*;
import java.util.*;

class Demo extends JFrame implements ActionListener {
private ResultSet rs;
JButton jb=null;
JPanel jp1,jp2;
JScrollPane jsp=new JScrollPane();
JTable jtb;
Vector row=new Vector();
Vector col=new Vector();
DefaultTableModel dtm=new DefaultTableModel();
public Demo() {
jtb=new JTable(dtm);
jtb.setPreferredScrollableViewportSize(new Dimension(200,200));
jsp.add(jtb);
jb=new JButton( "ok ");
jb.addActionListener(this);
jp1=new JPanel();
jp2=new JPanel();
jp2.setPreferredSize(new Dimension(300,300));
jsp.setPreferredSize(new Dimension(300,300));
jp2.setBackground(Color.red);
jp2.setLayout(new BorderLayout());
jp1.add(jb);
this.add(jp1, "North ");
this.getContentPane().add(jsp, BorderLayout.CENTER);
this.setSize(400,500);
this.show();
}

public void actionPerformed(ActionEvent e) {
if(e.getSource()==jb) {
ConDatabase base=new ConDatabase( "select * from audit_project ");
rs=base.getrs();
try {
ResultSetMetaData rsmd=rs.getMetaData();
for (int i = 1; i <=rsmd.getColumnCount(); i++) {
col.add(rsmd.getColumnName(i));
}
System.out.println(col);
while(rs.next()) {
Vector v=new Vector();
for (int i = 1; i <=rsmd.getColumnCount(); i++) {
v.add(rs.getString(i));


}
row.add(v);
}
System.out.println(row);
dtm.setDataVector(row,col);
jsp.setViewportView(jtb);
System.out.println( "ddddddddd ");
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}

public static void main(String[] args) {
new Demo();
}
}

每次点击按钮,列数会增倍,只需要把两个vector clear()一下就行了,自己加吧。
ps:注意一下代码规范
[解决办法]
定义这样一个类,我已经写好,你可以直接调用
package com.softfz.zxj;

import java.util.ArrayList;

import javax.swing.table.AbstractTableModel;

public class MyTableModel extends AbstractTableModel {//

private ArrayList data = null;
private String[] columnNames = null;
public MyTableModel(String[] tableTitle,ArrayList tabledata)
{
columnNames = tableTitle;
data = tabledata;
}


public int getColumnCount(){
return columnNames.length;
}
public int getRowCount(){
return data.size();
}

public String getColumnName(int col){
return columnNames[col];

}

public Object getValueAt(int row,int col){
return ((ArrayList)data.get(row)).get(col);
}


/**
* @return 返回 data。
*/
public ArrayList getData() {
return data;
}
实例化时要传入两个参数tableTitle,tabledata
用法:tableTitle为表中每个字段的标题,tabledata这个参数是一个ArrayList
如:String[] title ={ "name ", "age "};
ArrayList record=new  ArrayList();
record.add( "zxj ");
record.add(new Integer(56))
ArrayList data = new ArrayList();
data.add(record);
table.setModel(new MyTableModel(title ,data));

[解决办法]
问题你真是小妹吗?别冒充啊,你要小弟也会有人喜欢你的,当然小妹就别说了,里面色狼多的是,他们一定争着向你伸出手的,祝你一切顺利啊!

热点排行
Bad Request.