jtable-java中JTable的问题,求解,大神在哪里

问题描述

java中JTable的问题,求解,大神在哪里

import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class a160407 extends JFrame implements ActionListener{
JButton anl1,anl2,anl3,anl4;
JLabel bq;
JTextField wbk;
JPanel mb1,mb2;
JTable bg;
JScrollPane gd;
aaaa aa;
public static void main(String[] args){
a160407 aaa=new a160407();
}
public a160407(){

    anl1=new JButton("查询");
    anl1.addActionListener(this);
    anl1.setActionCommand("chaxun");
    anl2=new JButton("添加");
    anl2.addActionListener(this);
    anl2.setActionCommand("tianjia");
    anl3=new JButton("删除");
    anl3.addActionListener(this);
    anl3.setActionCommand("shanchu");
    anl4=new JButton("修改");
    anl4.addActionListener(this);
    anl4.setActionCommand("xiugai");
    bq=new JLabel("请输入姓名");
    wbk=new JTextField(7);
    mb1=new JPanel();
    mb2=new JPanel();
    aa=new aaaa();
    bg=new JTable(aa);
    gd=new JScrollPane(bg);

    mb1.setLayout(new FlowLayout());mb1.add(bq);mb1.add(wbk);mb1.add(anl1);

    mb2.setLayout(new FlowLayout());mb2.add(anl2);mb2.add(anl3);mb2.add(anl4);

    this.add(mb1,BorderLayout.NORTH);
    this.add(mb2,BorderLayout.SOUTH);
    this.add(gd);

    this.setResizable(false);
    this.setSize(800,600);
    this.setLocation(300,150);
    this.setTitle("QQ联系人");
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);
}
public void actionPerformed(ActionEvent e){
    if(e.getActionCommand().equals("chaxun")){
        String xingming=this.wbk.getText().trim();
        String sql="select * from QQ where xinmin='"+xingming+"'";
        aa=new aaaa(sql);
        bg.setModel(aa);
    }
    else if(e.getActionCommand().equals("tianjia")){
        tianjia tj=new tianjia(this,"信息添加",true);
        aa=new aaaa();
        bg.setModel(aa);
        System.out.println("fffffffffffffff");
    }
    else if(e.getActionCommand().equals("shanchu")){

        int ii=this.bg.getSelectedRow();
        if(ii==-1){

            JOptionPane.showMessageDialog(this,"请选中要删除的行");
            return;
        }   程序总是运行到下面的这句话出错????????????????????
            String st=(String)aa.getValueAt(ii,0);我发现getValueAt(ii,0)中的0改成1或者其他不是0的数程序就正常了,请好心的大神把我解决一下!
            PreparedStatement ps=null;
            Connection ct=null;
            ResultSet rs=null;
            try{
                 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                 ct=DriverManager.getConnection("jdbc:odbc:SQL Sever","sa","923274995");
                 ps=ct.prepareStatement("delete  from QQ where xinmin=?");
                 ps.setString(1,st);
                 ps.executeUpdate();
            }catch(Exception e2){}
            finally{
                try {
                    if(rs!=null)
                    {
                        rs.close();
                    }
                    if(ps!=null)
                    {
                        ps.close();
                    }
                    if(ct!=null)
                    {
                        ct.close();
                    }

                } catch (Exception e3){}

            }aa=new aaaa();
            bg.setModel(aa);

    }
    else if(e.getActionCommand().equals("xiugai")){
        int ii=this.bg.getSelectedRow();
        if(ii==-1){
            JOptionPane.showMessageDialog(this,"请选中要修改的行");
            return;
        }
        new xiugai(this,"信息修改",true,aa,ii);

    }
}

}
要解决的问题在上面代码一排问号??????的下面

解决方案

你这个 删除记录的sql判断条件是xinmin,然后你getValueAt就应该是获取xinmin,getValueAt中后面一个参数是columnIndex,列值,你看看姓名是哪一列;
还有,建议你用编号做判断,你这整个代码一行注释都没有,醉了。有空学学怎么调试吧,很简单的,你设个断点出错的位置,很好排查的

解决方案二:

关于java中Jtable出现的一些问题

解决方案三:

看看aaaa类的代码

解决方案四:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Vector;
import javax.swing.table.*;
class aaaa extends AbstractTableModel {
Vector ziduan,jilu;
PreparedStatement ps=null;
Connection ct=null;
ResultSet rs=null;
public int getRowCount()
{
return this.jilu.size();
}
public int getColumnCount()
{
return this.ziduan.size();
}
public Object getValueAt(int hang, int lie)
{
return ((Vector)this.jilu.get(hang)).get(lie);
}
public String getColumnName(int e)
{
return (String)this.ziduan.get(e);
}
public aaaa(){
bb("select * from QQ");
}
public aaaa(String sql){
bb(sql);
}
public void bb(String a){
ziduan=new Vector();
ziduan.add("编号");
ziduan.add("姓名");
ziduan.add("性别");
ziduan.add("年龄");
ziduan.add("手机号");
ziduan.add("QQ号");

ziduan.add("名片");
ziduan.add("会员");
ziduan.add("签名");
ziduan.add("天数");

jilu=new Vector();

try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
ct=DriverManager.getConnection("jdbc:odbc:SQL Sever","sa","923274995");

ps=ct.prepareStatement(a);

rs=ps.executeQuery();

while(rs.next())
{
Vector hang=new Vector();
hang.add(rs.getInt(1));
hang.add(rs.getString(2));
hang.add(rs.getString(3));
hang.add(rs.getInt(4));
hang.add(rs.getLong(5));
hang.add(rs.getLong(6));
hang.add(rs.getString(7));
hang.add(rs.getString(8));
hang.add(rs.getString(9));
hang.add(rs.getInt(10));
jilu.add(hang);
}
} catch (Exception e){}
finally
{
try {
if(rs!=null)
{
rs.close();

            }
            if(ps!=null)
            {
                ps.close();
            }
            if(ct!=null)
            {
                ct.close();
            }

        } catch (Exception e){}
    }
}

}

时间: 2024-09-25 17:27:33

jtable-java中JTable的问题,求解,大神在哪里的相关文章

p#-java中集合的问题请教大神

问题描述 java中集合的问题请教大神 在Collection集合中Collection col = new ArrayList(); 和ArrayList arr = new ArrayList(); 这两个有什么区别吗! 解决方案 没有什么区别,ArrayList是Collection的实现类. 解决方案二: 举个例子吧,collection是爹,arrayList是儿子,儿子的功能肯定大于等于爹的,但是你用父类变量去引用子类对象,那么在调用方法时,如果想调用儿子的特有功能,就不行了.这是动

java myecl...-java的swing问题,各位大神,求解啊

问题描述 java的swing问题,各位大神,求解啊 java的swing用多表查询怎样使多个表中的数据在同一个窗体中显示出来? 解决方案 用监听器传就好了,设置多个Jpanel 用Layout布置好界面不就好了 解决方案二: 整合数据,然后绑定到gridview 解决方案三: 蚁群算法的Java实现求解TSP问题

java中我知道i=i++大意思是自增1的意思,那么i+=1是什么意思

问题描述 java中我知道i=i++大意思是自增1的意思,那么i+=1是什么意思 如题, java中我知道i=i++大意思是自增1的意思,那么i+=1是什么意思 解决方案 i++ 和 i+=1 两个的意思一样的,i=i++这个是要报错的 解决方案二: $# 是启动脚本时携带的参数个数 -ne 是不等于 这个语句的意思是"如果shell的启动参数不等于1个" $# 表示提供到shell脚本或者函数的参数总数: $1 表示第一个参数. -ne 表示 不等于 另外: 整数比较 -eq 等于,

android java 回调-关于android中的回调机制 求大神帮忙看看代码

问题描述 关于android中的回调机制 求大神帮忙看看代码 boss 叫我写一个sdk 然后里面得实现回调 还给了我个demo 说回调机制和这个demo 一样 大概就是从A客户端发出一个数据 然后我这边接受 接受和执行一个事件 然后再回调给C public class DemoActivity extends Activity { private InputInterceptor input; @Override protected void onCreate(Bundle savedInst

java web-javaweb 开发的电商项目,如何在系统中使用缓存? 求大神赐教,感激不尽……

问题描述 javaweb 开发的电商项目,如何在系统中使用缓存? 求大神赐教,感激不尽-- 电商项目将常用数据缓存起来,比如,移动端首页的数据,商品分类等这些不经常变化的数据,目的是为了 增强 移动端Android.iOS 响应速度. 问题1:缓存,移动端首页的数据,商品分类等这些不经常变化的数据,线上运行的项目 ,是怎么做的,用到那些技术? 问题2:缓存应该怎么弄,是否要用到redis? 如果,不使用缓存,还有,其他什么解决方案吗? 解决方案 简单点的就用ehcache解决.

java程序报错,求大神找bug

问题描述 java程序报错,求大神找bug package arraysofobjects; import java.util.Scanner; public class arraysofobjects { public static void main(String[] args) { Scanner input=new Scanner(System.in); students[] stu=new students[4]; String name; int grade; for(int i=0

数据转化-java的数据转换问题,请大神帮我看一下

问题描述 java的数据转换问题,请大神帮我看一下 今天看到书上讲到数据转化,我看不懂,拍给大家,请大家帮我解释一下,谢谢 解决方案 在用system.out.println时会自动转换,你也可以用(float)进行强制转换 解决方案二: java中,两个数运算时,如果类型不同,自动会转成类型相同,如果是int和float计算,则两个数都会转成float后再计算.第一张图a/b会有小数 第二张图 a,b都是整型,除法后a/b取整再转float.所以小数都是0,是因为是a/b除后舍去了小数. 解决

代码-问一个JAVA的基础问题,希望大神们帮忙解惑。

问题描述 问一个JAVA的基础问题,希望大神们帮忙解惑. 有一段如下的代码,有几个疑惑: 1.定义了一个final的test1和一个static里面的test1,为什么定义2个test1不会有问题? 2.为什么在一个类中直接写static{ },这个是什么原理? 3.还有什么类似static{ }这样的写法?是什么原理? public class MyOwenTest{ public static final String test1 = "a"; static{ String tes

java-报错!!!找不到action中welcome方法,求大神们赐教!

问题描述 报错!!!找不到action中welcome方法,求大神们赐教! HTTP Status 500 - The welcome() is not defined in action class com.opensymphony.xwork2.ActionSupport type Exception report message The welcome() is not defined in action class com.opensymphony.xwork2.ActionSuppor

java注解功能的实现 求大神赐教

问题描述 java注解功能的实现 求大神赐教 如何定义一个注解去out把它写在某个方法的前面 使得可以直接运行该方法 相当于main中写了个该方法 如何实现???.. 解决方案 在main中反射,遍历方法,发现有你定义的注解,就执行.