public void setValueAt(Object value, int row, int column) {
        try {
  String tableName = metaData.getTableName(column+1);//??????如何与当前操作的表挂钩??
            // Some of the drivers seem buggy, tableName should not be null.
            if (tableName == null) {
                System.out.println("Table name returned null.");
            }
            String columnName = getColumnName(column);
            String query =
                "update "+tableName                  //如何得到当前正在操作的表名(随事件的不同表的选择不同),对其进行修改
                + " set "+columnName+" = "+dbRepresentation(column, value)+
                " where ";
            // We don't have a model of the schema so we don't know the
            // primary keys or which columns to lock on. To demonstrate
            // that editing is possible, we'll just lock on everything.
            for(int col = 0; col<getColumnCount(); col++) {
                String colName = getColumnName(col);
                if (colName.equals("")) {
                    continue;
                }
                if (col != 0) {
                    query = query + " and ";
                }
                query = query + colName +" = "+
                    dbRepresentation(col, getValueAt(row, col));
            }
            System.out.println(query);
            System.out.println("Not sending update to database");
             statement.executeQuery(query);
             //statement.executeUpdate(query);        }
       catch (SQLException e) {
                 e.printStackTrace();
            System.err.println("Update failed");
        }
        Vector dataRow = (Vector)rows.elementAt(row);
        dataRow.setElementAt(value, column);    }
}
 class menuWin extends JFrame
{ JDBCAdapter tableModel;
  Container con;JPanel p1;
  JButton button1,button2,button3,button4;
  menuWin()
  {super("飞机票预定系统");
        String driverName="sun.jdbc.odbc.JdbcOdbcDriver";
        String url = "jdbc:odbc:airplane";
        String user= "sa";
        String passwd = "1128";   con=getContentPane(); p1=new JPanel();
   setSize(200,80);setVisible(true);
   JMenuBar menubar=new JMenuBar();
   con.add(menubar,BorderLayout.NORTH);   JMenu menu1=new JMenu("管理员登录系统");
   JMenu menu2=new JMenu("航班信息系统");
   JMenu menu3=new JMenu("座位情况信息系统");
   JMenu menu4=new JMenu("机票预定信息系统");
   JMenu menu5=new JMenu("取票信息系统");
   JMenu menu6=new JMenu("账单信息系统");   JMenuItem item1=new JMenuItem("管理员信息");
   JMenuItem item2=new JMenuItem("授权管理");   JMenuItem item3=new JMenuItem("航班信息表");   JMenuItem item4=new JMenuItem("座位情况信息表");   JMenuItem item5=new JMenuItem("预定机票");
   JMenuItem item6=new JMenuItem("打印取票通知");
   JMenuItem item7=new JMenuItem("打印帐单");
   JMenuItem item8=new JMenuItem("计算满座率");
   JMenuItem item9=new JMenuItem("退票");   JMenuItem item10=new JMenuItem("取票信息表");   JMenuItem item11=new JMenuItem("账单信息表");
   menu1.add(item1);menu1.add(item2);   menu2.add(item3);menu3.add(item4);   menu4.add(item5);menu4.add(item6);menu4.add(item7);menu4.add(item8);menu4.add(item9);   menu5.add(item10);menu6.add(item11);   menubar.add(menu1);menubar.add(menu2);menubar.add(menu3);
   menubar.add(menu4);menubar.add(menu5);menubar.add(menu6);   button1=new JButton("show");button3=new JButton("update");
   button2=new JButton("add"); button4=new JButton("remove");   p1.add(button1); p1.add(button2);p1.add(button3);p1.add(button4);
   con.add(p1,BorderLayout.SOUTH);      addWindowListener(new WindowAdapter()
       { public void windowClosing(WindowEvent e)
      { setVisible(false);System.exit(0);}});
                tableModel =new JDBCAdapter( url,driverName,user,passwd);
               //  tableModel.executeQuery(query);                 JTable table=new JTable(tableModel);
        JScrollPane scroll;
        table.setToolTipText("Display Query Result");
        table.setAutoResizeMode(table.AUTO_RESIZE_OFF);
        table.setCellSelectionEnabled(false);
        table.setShowHorizontalLines(true);
        table.setShowVerticalLines(true);
        scroll = new JScrollPane(table);
        scroll.setBounds(6,20,540,250);
             con.add(scroll,BorderLayout.CENTER); button1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
tableModel.executeQuery("select * from table1");     }
 }
); item1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
tableModel.executeQuery("select * from table2");     }
 }
);
//???如何随着事件的不同对不同的表进行修改???  }//end menuWin}//end class
public class test1
{public static void main(String args[])
   {menuWin win=new menuWin();
    win.pack();
    }
}

解决方案 »

  1.   

    swing的东西不熟悉,顶一下!
      

  2.   

    其实我感觉只是一个函数调用的问题。我只想让setvalues()方法得到当前正在操作的表名(随事件的不同表的选择不同),对其进行修改
    仔细看看吧,其实不难的!
      

  3.   

    其实我感觉只是一个函数调用的问题。我只想让setvalues()方法得到当前正在操作的表名(随事件的不同表的选择不同),对其进行修改
    仔细看看吧,其实不难的!