标题:JB与SQl连接的JTable在添加数据时为什么有重?
只看楼主
xxp5310776
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:49
专家分:1
注 册:2006-11-19
得分:0 

没有,这样我把代码全贴出来你看一下!
package project2;
import java.io.*;
import java.sql.*;
import java.util.*;
//import javax.swing.JOptionPane;
//import java.lang.*;
class database implements Serializable {
public database() {
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}

//创建数据库对象
private Connection con;
private PreparedStatement ps;
private Statement s;
private ResultSet rs;
//定义属性
private String name;
private String password;
private String address;
//连接数据库
private boolean getConnection()
{
boolean flag=false;
try
{
//JDBC直连驱动
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=userinfo";
con=DriverManager.getConnection(url,"sa","");
/*JDBC桥驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:userinfo";
con=DriverManager.getConnection(url,"sa","");*/
flag=true;
}
catch(Exception ex)
{
System.out.println("连接失败");
}
return flag;
}
//验证用户和密码
public boolean getselect()
{
boolean flag=false;
try
{
this.getConnection();
ps=con.prepareStatement("select * from userinfo where name=? and password=?");
ps.setString(1,this.getName());
ps.setString(2,this.getPassword());
//判断是否有数据存在
rs=ps.executeQuery();
if(rs.next())
{
flag=true;
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
this.closeData();
}
return flag;
}
//添加数据
public boolean add(){
boolean flag=false;
try{
this.getConnection();
ps=con.prepareStatement("insert into userinfo values(?,?,?)");
ps.setString(1,getName());
ps.setString(2,getPassword());
ps.setString(3,getAddress());
rs=ps.executeQuery();
flag=true;
}catch(Exception ex){
ex.printStackTrace();
}
finally{
this.closeData();
}
return flag;
}
//删除信息
public boolean delete(){
boolean flag=false;
try{
this.getConnection();
ps=con.prepareStatement("delete from userinfo where name=?");
ps.setString(1,getName());
rs=ps.executeQuery();
flag=true;

}catch(Exception ex){
ex.printStackTrace();
}
finally{
this.closeData();
}
return flag;
}
//修改信息
public boolean update(){
boolean flag=false;
try{
this.getConnection();
ps=con.prepareStatement("update userinfo set password=?,address=? where name=?");
ps.setString(1,getPassword());
ps.setString(2,getAddress());
ps.setString(3,getName());
rs=ps.executeQuery();
flag=true;

}catch(Exception ex){
ex.printStackTrace();
}
finally{
this.closeData();
}
return flag;
}
//查找信息

public boolean search(){
boolean flag=false;
try{
this.getConnection();
ps=con.prepareStatement("select * from userinfo where name=?");
ps.setString(1,getName());
rs=ps.executeQuery();
if(rs.next()){
flag = true;
}
}catch(Exception ex){
ex.printStackTrace();
}
finally{
this.closeData();
}
return flag;
}

//显示所有信息
public Vector display(){
Vector vv=new Vector();
try{
this.getConnection();
ps=con.prepareStatement("select * from userinfo");
rs=ps.executeQuery();
while(rs.next()){
Vector v1=new Vector();
v1.add(rs.getString("name").trim());
v1.add(rs.getString("address").trim());
vv.add(v1);
}

}catch(Exception ex){
ex.printStackTrace();
}
finally{
this.closeData();
}
return vv;
}
public Vector select(){
Vector v4=new Vector();
try{
this.getConnection();
ps=con.prepareStatement("select * from userinfo where name=?");
ps.setString(1,getName());
rs=ps.executeQuery();
if(rs.next()){
v4.add(rs.getString("name").trim());
v4.add(rs.getString("password").trim());
v4.add(rs.getString("address").trim());
}
}catch(Exception ex){
ex.printStackTrace();
}
finally {
this.closeData();
}
return v4;
}

//关闭数据库
private void closeData(){
try {
if(ps!=null)
ps.close();
if(rs!=null)
rs.close();
if(con!=null)
con.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
public String getName(){
return name;
}
public String getPassword(){
return password;
}
public String getAddress(){
return address;
}
public String setName(String name){
this.name=name;
return name;
}
public String setPassword(String password){
this.password=password;
return password;
}
public String setAddress(String address){
this.address=address;
return address;
}


private void jbInit() throws Exception {
}
}

package project2;

import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.border.TitledBorder;
import java.lang.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

public class userinfo
extends JDialog {
JPanel panel1 = new JPanel();
TitledBorder titledBorder1 = new TitledBorder("");
JPanel jPanel1 = new JPanel();
JScrollPane jScrollPane1 = new JScrollPane();
GridLayout gridLayout1 = new GridLayout();
TitledBorder titledBorder2 = new TitledBorder("");
//private JTable jtb;
JTable jtb = new JTable();
JLabel jLabel1 = new JLabel();
JTextField txtyhm = new JTextField();
JLabel jLabel2 = new JLabel();
JPasswordField txtmm = new JPasswordField();
JLabel jLabel3 = new JLabel();
JTextField txtaddress = new JTextField();
JButton btadd = new JButton();
JButton btdisp = new JButton();
JButton btupdate = new JButton();
JButton btserch = new JButton();
JButton btdel = new JButton();
public userinfo(Frame owner, String title, boolean modal) {
super(owner, title, modal);
try {
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
jbInit();
pack();
}
catch (Exception exception) {
exception.printStackTrace();
}
}

public userinfo() {
this(new Frame(), "userinfo", false);
panel1.setSize(600, 450);
try {
jbInit();
}
catch (Exception ex) {
ex.printStackTrace();
}
}

private void jbInit() throws Exception {
panel1.setLayout(gridLayout1);
panel1.setSize(600, 450);
gridLayout1.setColumns(0);
gridLayout1.setRows(2);
this.getContentPane().setLayout(null);
panel1.setBounds(new Rectangle(0, 0, 600, 450));
jPanel1.setLayout(null);
jLabel1.setFont(new java.awt.Font("Dialog", Font.PLAIN, 16));
jLabel1.setText("用户名:");
jLabel1.setBounds(new Rectangle(2, 19, 71, 28));
txtyhm.setFont(new java.awt.Font("Dialog", Font.PLAIN, 16));
txtyhm.setText("");
txtyhm.setBounds(new Rectangle(82, 15, 88, 30));
jLabel2.setFont(new java.awt.Font("Dialog", Font.PLAIN, 16));
jLabel2.setText("密码:");
jLabel2.setBounds(new Rectangle(174, 19, 50, 28));
txtmm.setText("");
txtmm.setBounds(new Rectangle(211, 15, 88, 30));
jLabel3.setFont(new java.awt.Font("Dialog", Font.PLAIN, 16));
jLabel3.setText("地址:");
jLabel3.setBounds(new Rectangle(2, 54, 54, 28));
txtaddress.setFont(new java.awt.Font("Dialog", Font.PLAIN, 16));
txtaddress.setText("");
txtaddress.setBounds(new Rectangle(60, 54, 238, 31));
btadd.setBounds(new Rectangle(7, 109, 63, 26));
btadd.setText("添加");
btadd.addActionListener(new userinfo_btadd_actionAdapter(this));
btdisp.setBounds(new Rectangle(152, 109, 63, 26));
btdisp.setText("显示");
btdisp.addActionListener(new userinfo_btdisp_actionAdapter(this));
btupdate.setBounds(new Rectangle(232, 109, 63, 26));
btupdate.setText("修改");
btupdate.addActionListener(new userinfo_btupdate_actionAdapter(this));
btserch.setBounds(new Rectangle(119, 165, 63, 26));
btserch.setActionCommand("查找");
btserch.setText("查找");
btserch.addActionListener(new userinfo_btserch_actionAdapter(this));
btdel.setBounds(new Rectangle(78, 109, 63, 26));
btdel.setText("删除");
btdel.addActionListener(new userinfo_btdel_actionAdapter(this));
panel1.add(jScrollPane1, null);
jScrollPane1.getViewport().add(jtb);
panel1.add(jPanel1, null);
jPanel1.add(jLabel1);
jPanel1.add(txtyhm);
jPanel1.add(jLabel2);
jPanel1.add(txtmm);
jPanel1.add(jLabel3);
jPanel1.add(txtaddress);
jPanel1.add(btadd);
jPanel1.add(btdisp);
jPanel1.add(btupdate);
jPanel1.add(btserch);
jPanel1.add(btdel);
this.getContentPane().add(panel1, null);
jPanel1.setBorder(titledBorder2);

// DefaultTableModel model=new DefaultTableModel(cells,header);
//jtb.setModel(model);

}

public void btadd_actionPerformed(ActionEvent e) {
database db = new database();
db.setName(this.txtyhm.getText().trim());
db.setPassword(this.txtmm.getText().trim());
db.setAddress(this.txtaddress.getText().trim());
if (db.getName().equals("")) {
JOptionPane.showMessageDialog(this, "用户名为空", "错误信息",
JOptionPane.ERROR_MESSAGE);
}
else {
if (db.getPassword().equals("")) {
JOptionPane.showMessageDialog(this, "密码为空", "错误信息",
JOptionPane.ERROR_MESSAGE);
}
else {
if (db.getAddress().equals("")) {
JOptionPane.showMessageDialog(this, "地址为空", "错误信息",
JOptionPane.ERROR_MESSAGE);
}
else {
if (db.search()) {
JOptionPane.showMessageDialog(this, "数据库中已经存在该用户名", "错误信息",
JOptionPane.ERROR_MESSAGE);
}
else {
db.add();
JOptionPane.showMessageDialog(this, "恭喜,添加成功", "弹出信息",
JOptionPane.INFORMATION_MESSAGE);
}

}
}
}

}

public void btdisp_actionPerformed(ActionEvent e) {
database db = new database();
Vector alluserinfo = db.display();
Vector cel = new Vector();
cel.add("用户名");
cel.add("地址信息");
DefaultTableModel model = new DefaultTableModel(alluserinfo, cel);
jtb.setModel(model);
Vector vvv=db.select();
txtmm.setText(vvv.get(1).toString());
txtaddress.setText(vvv.get(2).toString());

}

public void btdel_actionPerformed(ActionEvent e) {
database db = new database();
db.setName(this.txtyhm.getText().trim());
if (db.search()) {
JOptionPane.showMessageDialog(this, "是否真的要删除本用户", "警告信息",
JOptionPane.WARNING_MESSAGE);

db.delete();
JOptionPane.showMessageDialog(this, "该用户已经被删除", "信息",
JOptionPane.INFORMATION_MESSAGE);
}
else {
JOptionPane.showMessageDialog(this, "该用户不存在", "警告信息",
JOptionPane.ERROR_MESSAGE);
}
}

public void btupdate_actionPerformed(ActionEvent e) {
database db = new database();
db.setPassword(this.txtmm.getText().trim());
db.setAddress(this.txtaddress.getText().trim());
db.setName(this.txtyhm.getText().trim());
if (db.search()) {
JOptionPane.showMessageDialog(this, "是否真的要修改本用户", "警告信息",
JOptionPane.WARNING_MESSAGE);
db.update();
}
else {
JOptionPane.showMessageDialog(this, "数据库中没有本用户", "错误信息",
JOptionPane.ERROR_MESSAGE);
}
Vector vvv=db.select();
txtmm.setText(vvv.get(1).toString());
txtaddress.setText(vvv.get(2).toString());

}

public void btserch_actionPerformed(ActionEvent e) {
database db=new database();
db.setName(txtyhm.getText().trim());
if(db.search())
JOptionPane.showMessageDialog(this, "找到用户", "信息",
JOptionPane.INFORMATION_MESSAGE);

else
JOptionPane.showMessageDialog(this, "没有找到用户", "错误信息",
JOptionPane.ERROR_MESSAGE);
Vector vvv=db.select();
txtmm.setText(vvv.get(1).toString());
txtaddress.setText(vvv.get(2).toString());
}

}

class userinfo_btserch_actionAdapter
implements ActionListener {
private userinfo adaptee;
userinfo_btserch_actionAdapter(userinfo adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btserch_actionPerformed(e);
}
}

class userinfo_btupdate_actionAdapter
implements ActionListener {
private userinfo adaptee;
userinfo_btupdate_actionAdapter(userinfo adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btupdate_actionPerformed(e);
}
}

class userinfo_btdel_actionAdapter
implements ActionListener {
private userinfo adaptee;
userinfo_btdel_actionAdapter(userinfo adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btdel_actionPerformed(e);
}
}

class userinfo_btdisp_actionAdapter
implements ActionListener {
private userinfo adaptee;
userinfo_btdisp_actionAdapter(userinfo adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btdisp_actionPerformed(e);
}
}

class userinfo_btadd_actionAdapter
implements ActionListener {
private userinfo adaptee;
userinfo_btadd_actionAdapter(userinfo adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btadd_actionPerformed(e);
}
}


2006-12-24 21:16
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
main方法都没有,我怎么运行你的程序啊

可惜不是你,陪我到最后
2006-12-24 21:53
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

你的数据库不能那样上传
你应该建个备分,我这边还原

你直接把 数据文件考过来是没有用的


可惜不是你,陪我到最后
2006-12-24 22:06
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

找了半天,终于把问题的根本找到了,
我给你看吧
[CODE]package project2;
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.border.TitledBorder;
import java.lang.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
public class userinfo
extends JDialog {
JPanel panel1 = new JPanel();
TitledBorder titledBorder1 = new TitledBorder("");
JPanel jPanel1 = new JPanel();
JScrollPane jScrollPane1 = new JScrollPane();
GridLayout gridLayout1 = new GridLayout();
TitledBorder titledBorder2 = new TitledBorder("");
//private JTable jtb;
JTable jtb = new JTable();
JLabel jLabel1 = new JLabel();
JTextField txtyhm = new JTextField();
JLabel jLabel2 = new JLabel();
JPasswordField txtmm = new JPasswordField();
JLabel jLabel3 = new JLabel();
JTextField txtaddress = new JTextField();
JButton btadd = new JButton();
JButton btdisp = new JButton();
JButton btupdate = new JButton();
JButton btserch = new JButton();
JButton btdel = new JButton();
public userinfo(Frame owner, String title, boolean modal) {
super(owner, title, modal);
try {
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
jbInit();
pack();
} catch (Exception exception) {
exception.printStackTrace();
}
}

public userinfo() {
this(new Frame(), "userinfo", false);//你在这里已经调用了上面的构造函数,上面的构造函数已经调用了jbInit(),你下面再调用就是重复了
panel1.setSize(600, 450);
try {
jbInit();//如果你用这个构造函数来生成userinfo的时候,jbInit就重复调用了一次
因为在你上面的构造函数里已经调用过它了,所以你就为你的按钮加了两次监听,所以才会执行两次
} catch (Exception ex) {
ex.printStackTrace();
}
}

private void jbInit() throws Exception {
panel1.setLayout(gridLayout1);
panel1.setSize(600, 450);
gridLayout1.setColumns(0);
gridLayout1.setRows(2);
this.getContentPane().setLayout(null);
panel1.setBounds(new Rectangle(0, 0, 600, 450));
jPanel1.setLayout(null);
jLabel1.setFont(new java.awt.Font("Dialog", Font.PLAIN, 16));
jLabel1.setText("用户名:");
jLabel1.setBounds(new Rectangle(2, 19, 71, 28));
txtyhm.setFont(new java.awt.Font("Dialog", Font.PLAIN, 16));
txtyhm.setText("");
txtyhm.setBounds(new Rectangle(82, 15, 88, 30));
jLabel2.setFont(new java.awt.Font("Dialog", Font.PLAIN, 16));
jLabel2.setText("密码:");
jLabel2.setBounds(new Rectangle(174, 19, 50, 28));
txtmm.setText("");
txtmm.setBounds(new Rectangle(211, 15, 88, 30));
jLabel3.setFont(new java.awt.Font("Dialog", Font.PLAIN, 16));
jLabel3.setText("地址:");
jLabel3.setBounds(new Rectangle(2, 54, 54, 28));
txtaddress.setFont(new java.awt.Font("Dialog", Font.PLAIN, 16));
txtaddress.setText("");
txtaddress.setBounds(new Rectangle(60, 54, 238, 31));
btadd.setBounds(new Rectangle(7, 109, 63, 26));
btadd.setText("添加");
btadd.addActionListener(new userinfo_btadd_actionAdapter(this));
btdisp.setBounds(new Rectangle(152, 109, 63, 26));
btdisp.setText("显示");
btdisp.addActionListener(new userinfo_btdisp_actionAdapter(this));
btupdate.setBounds(new Rectangle(232, 109, 63, 26));
btupdate.setText("修改");
btupdate.addActionListener(new userinfo_btupdate_actionAdapter(this));
btserch.setBounds(new Rectangle(119, 165, 63, 26));
btserch.setActionCommand("查找");
btserch.setText("查找");
btserch.addActionListener(new userinfo_btserch_actionAdapter(this));
btdel.setBounds(new Rectangle(78, 109, 63, 26));
btdel.setText("删除");
btdel.addActionListener(new userinfo_btdel_actionAdapter(this));
panel1.add(jScrollPane1, null);
jScrollPane1.getViewport().add(jtb);
panel1.add(jPanel1, null);
jPanel1.add(jLabel1);
jPanel1.add(txtyhm);
jPanel1.add(jLabel2);
jPanel1.add(txtmm);
jPanel1.add(jLabel3);
jPanel1.add(txtaddress);
jPanel1.add(btadd);
jPanel1.add(btdisp);
jPanel1.add(btupdate);
jPanel1.add(btserch);
jPanel1.add(btdel);
this.getContentPane().add(panel1, null);
jPanel1.setBorder(titledBorder2);

// DefaultTableModel model=new DefaultTableModel(cells,header);
//jtb.setModel(model);

}

public void btadd_actionPerformed(ActionEvent e) {
database db = new database();
db.setName(this.txtyhm.getText().trim());
db.setPassword(this.txtmm.getText().trim());
db.setAddress(this.txtaddress.getText().trim());
if (db.getName().equals("")) {
JOptionPane.showMessageDialog(this, "用户名为空", "错误信息",
JOptionPane.ERROR_MESSAGE);
} else {
if (db.getPassword().equals("")) {
JOptionPane.showMessageDialog(this, "密码为空", "错误信息",
JOptionPane.ERROR_MESSAGE);
} else {
if (db.getAddress().equals("")) {
JOptionPane.showMessageDialog(this, "地址为空", "错误信息",
JOptionPane.ERROR_MESSAGE);
} else {
if (db.search()) {
JOptionPane.showMessageDialog(this, "数据库中已经存在该用户名", "错误信息",
JOptionPane.ERROR_MESSAGE);
} else {
System.out.println("要调用了");
db.add();
// JOptionPane.showMessageDialog(this, "恭喜,添加成功", "弹出信息",
// JOptionPane.INFORMATION_MESSAGE);
}

}
}
}

}

public void btdisp_actionPerformed(ActionEvent e) {
database db = new database();
Vector alluserinfo = db.display();
Vector cel = new Vector();
cel.add("用户名");
cel.add("地址信息");
DefaultTableModel model = new DefaultTableModel(alluserinfo, cel);
jtb.setModel(model);
Vector vvv=db.select();
txtmm.setText(vvv.get(1).toString());
txtaddress.setText(vvv.get(2).toString());

}

public void btdel_actionPerformed(ActionEvent e) {
database db = new database();
db.setName(this.txtyhm.getText().trim());
if (db.search()) {
JOptionPane.showMessageDialog(this, "是否真的要删除本用户", "警告信息",
JOptionPane.WARNING_MESSAGE);

db.delete();
JOptionPane.showMessageDialog(this, "该用户已经被删除", "信息",
JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(this, "该用户不存在", "警告信息",
JOptionPane.ERROR_MESSAGE);
}
}

public void btupdate_actionPerformed(ActionEvent e) {
database db = new database();
db.setPassword(this.txtmm.getText().trim());
db.setAddress(this.txtaddress.getText().trim());
db.setName(this.txtyhm.getText().trim());
if (db.search()) {
JOptionPane.showMessageDialog(this, "是否真的要修改本用户", "警告信息",
JOptionPane.WARNING_MESSAGE);
db.update();
} else {
JOptionPane.showMessageDialog(this, "数据库中没有本用户", "错误信息",
JOptionPane.ERROR_MESSAGE);
}
Vector vvv=db.select();
txtmm.setText(vvv.get(1).toString());
txtaddress.setText(vvv.get(2).toString());

}

public void btserch_actionPerformed(ActionEvent e) {
database db=new database();
db.setName(txtyhm.getText().trim());
if(db.search())
JOptionPane.showMessageDialog(this, "找到用户", "信息",
JOptionPane.INFORMATION_MESSAGE);

else
JOptionPane.showMessageDialog(this, "没有找到用户", "错误信息",
JOptionPane.ERROR_MESSAGE);
Vector vvv=db.select();
txtmm.setText(vvv.get(1).toString());
txtaddress.setText(vvv.get(2).toString());
}

}
class userinfo_btserch_actionAdapter
implements ActionListener {
private userinfo adaptee;
userinfo_btserch_actionAdapter(userinfo adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btserch_actionPerformed(e);
}
}
class userinfo_btupdate_actionAdapter
implements ActionListener {
private userinfo adaptee;
userinfo_btupdate_actionAdapter(userinfo adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btupdate_actionPerformed(e);
}
}
class userinfo_btdel_actionAdapter
implements ActionListener {
private userinfo adaptee;
userinfo_btdel_actionAdapter(userinfo adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btdel_actionPerformed(e);
}
}
class userinfo_btdisp_actionAdapter
implements ActionListener {
private userinfo adaptee;
userinfo_btdisp_actionAdapter(userinfo adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btdisp_actionPerformed(e);
}
}
class userinfo_btadd_actionAdapter
implements ActionListener {
private userinfo adaptee;
userinfo_btadd_actionAdapter(userinfo adaptee) {
System.out.println("调用");
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
System.out.println("调用了");
adaptee.btadd_actionPerformed(e);
}
}[/CODE]

以后写程序一定要小心,还有,调试程序的时候,一步一步来,错误一定排得出来的

我先是看你有没有调用两个addActionListenter发现没有,然后再查看有没有调用两次事件处理函数,发现调用了两次,那就可以肯定是定是注册了两次,然后就找注册监听器的语句在哪个方法里面,那个方面有没有可能被调用两次
最后果然发现你的jbInit调用了两次


可惜不是你,陪我到最后
2006-12-24 22:33
xxp5310776
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:49
专家分:1
注 册:2006-11-19
得分:0 
Thanks!

2006-12-25 09:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-111552-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049223 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved