回 帖 发 新 帖 刷新版面

主题:取数据库表字符串数据问题

Java新手求助。想从数据库的表中取出数据,显示在表格中,编译时抱错:

T_goods.java:63: 错误: 对于add(Vector<String>), 找不到合适的方法 summery.add(data);  

方法 Vector.add(int,String)不适用 (实际参数列表和形式参数列表长度不同)    

方法 Vector.add(String)不适用 (无法通过方法调用转换将实际参数Vector<String>转换为String)               

注: T_goods.java使用了未经检查或不安全的操作。                                 

注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。   


百度了一些方案,但是没能解决问题。求解答,谢谢。


代码如下:

//
import java.util.*;
import java.awt.*;
import javax.swing.*;
import java.sql.*;

public class T_goods extends JFrame{
JPanel p_north=null, p_south=null;
JLabel l_txt;
JTextField sle_name;
JButton cb_find,cb_new,cb_edit,cb_del,cb_save;

JTable dw_grid=null;
Vector<String> hander=null;
Vector<String> summery=null;
JScrollPane sp_table=null;

Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;

public static void main(String[] args){
T_goods goods=new T_goods();
}

T_goods(){
//查询条件
l_txt=new JLabel("商品名称:");
sle_name=new JTextField(10);
cb_find=new JButton("查询");
p_north=new JPanel();

p_north.add(l_txt);
p_north.add(sle_name);
p_north.add(cb_find);

//
hander=new Vector();

hander.add("商品编号");
hander.add("商品名称");
hander.add("商品规格");


//表格数据
summery=new Vector<String>();
try{
//
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//
conn=DriverManager.getConnection("jdbc:odbc:posv1","sa","123456");
//
ps=conn.prepareStatement("select * from tp_goods_info");
rs=ps.executeQuery();
while(rs.next()){
//
Vector<String> data=new Vector<String>();

data.add(rs.getString("goods_no"));
data.add(rs.getString("goods_nm"));
data.add(rs.getString("goods_size"));

summery.add(data);        //提示错误位置
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(conn!=null){
conn.close();
}
if(ps!=null){
ps.close();
}
}catch(Exception e){
e.printStackTrace();
}
}

dw_grid=new JTable(hander,summery);
sp_table=new JScrollPane(dw_grid);

//功能按钮
cb_new=new JButton("新增");
cb_edit=new JButton("编辑");
cb_del=new JButton("删除");
cb_save=new JButton("保存");
p_south=new JPanel();

p_south.add(cb_new);
p_south.add(cb_edit);
p_south.add(cb_del);
p_south.add(cb_save);

//
this.add(p_north,BorderLayout.NORTH);
this.add(p_south,BorderLayout.SOUTH);
this.add(sp_table);

this.setIconImage(new ImageIcon("image/logo.png").getImage());
this.setTitle("JTable");
//
this.setSize(1024,768);
this.setLocation(280,50);
this.setResizable(false);
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
this.setVisible(true);
}
}



回复列表 (共1个回复)

沙发

Vector<String> summery=null;

.

.

summery.add(data);  

你定义的summery是字条型,而data是Vector类型,这样

Vector<Object> summery=null;

summery=new Vector<Object>();

summery.add(data);

这样就不会出错了!!存储表格数据的行时,在不确定数据类型时,就用 Object 类型吧!

我来回复

您尚未登录,请登录后再回复。点此登录或注册