问题描述
下边这段程序,我希望实现的功能:方法weixiuluru()实现在两个文本框输入两个字符串,并把输入的两个字符串用静态方法test传给方法weixiutongji(),而方法weixiutongji()则实现输出所有包含这两个字符串的记录和数量.importjava.awt.event.*;importjavax.swing.*;importjava.awt.*;importjava.awt.Container;importjava.util.*;importjava.sql.*;classluruweixiuextendsFrame{Panelp1,p2,p3,p4;Labele1,e2;TextFieldtext1,text2;Buttonb1;publicStringluruweixiu(){e1=newLabel("设备名称");e2=newLabel("设备型号");//testt11=newtest();text1=newTextField(20);text2=newTextField(20);b1=newButton("设备维修信息统计");p1=newPanel();p2=newPanel();p3=newPanel();p1.add(e1);p1.add(text1);p1.add(e2);p1.add(text2);p1.add(b1);setLayout(newFlowLayout());add(p1);b1.addActionListener(newB1());addWindowListener(newWinClose());setSize(800,600);setTitle("设备维修信息统计条件输入窗口");setVisible(true);}classB1implementsActionListener{publicvoidactionPerformed(ActionEvente){try{test.t1=text1.getText();test.t2=text2.getText();System.out.println(text1.getText());System.out.println(text2.getText());System.out.println("t1"+t1);//returnt1;//newweixiuliulan().showRecord();//焦点移到第一个输入框}catch(Exceptione2){System.out.println("输入数据有误!");text1.requestFocus();}}}classWinCloseextendsWindowAdapter//关闭窗口{publicvoidwindowClosing(WindowEvente){System.exit(0);}}}/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////classweixiutongjiimplementsActionListener{JFramef;Containercp;JPaneljpS,jpanelWest;JButtonjbt1,jbt2;//按钮,查询、取消、修改JLabellabel,L;//标签//定义文本框JTabletable;//用来接收数据库中返回的信息ObjectcolumnName[]={"设备维修编号","设备编号","设备名称","设备型号","制造厂家","安装地点","维修时间","维修数量","维修内容"};Objectar[][]=newObject[60][9];Stringsno;Stringcount="xx";weixiutongji(){System.out.println("t1"+test.t1);f=newJFrame();cp=f.getContentPane();//初始化面板、按钮、标签、文本框jpS=newJPanel();jpanelWest=newJPanel();//------------------------------------------------jbt1=newJButton("确定");jbt2=newJButton("返回");//------------------------------------------------label=newJLabel("<html><fontcolor=#CC00FFsize='4'>设备维修信息总览</font>",SwingConstants.CENTER);label.setForeground(Color.blue);L=newJLabel("设备信息库共有设备维修信息"+count+"条");//------------------------------------------------table=newJTable(ar,columnName);//ar存放表中的数据,columnname表示列名JScrollPanescrollpane=newJScrollPane(table);//------------------------------------------------//布局,添加控件jpS.add(jbt1);jpS.add(jbt2);JPaneljpanel=newJPanel();jpanel.add(label);JPanelpp4=newJPanel();JPaneljpE=newJPanel();cp.add(jpanel,"North");JPaneljp=newJPanel();//jp.add(scrollpane);JPanelp=newJPanel();//用来放两个表p.setLayout(newBorderLayout());p.add(L,"North");p.add(scrollpane);cp.add(pp4,"West");cp.add(p,"Center");cp.add(jpS,"South");cp.add(jpE,"East");//------------------------------------------------Toolkitkit=Toolkit.getDefaultToolkit();Dimensionscreen=kit.getScreenSize();intx=screen.width;/*取得显示器窗口的宽度*/inty=screen.height;/*取得显示器窗口的高度*///f.setSize(400,330);f.setSize(800,600);//intxcenter=(x-350)/2;intxcenter=(x-780)/2;//intycenter=(y-330)/2;intycenter=(y-580)/2;f.setLocation(xcenter,ycenter);/*显示在窗口中央*/f.setVisible(true);//-------------------------------------------------jbt1.addActionListener(this);//注册监听器jbt2.addActionListener(this);/*f.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});*/}//------------------------------------------------inti=0;publicvoidshowRecord(){while(i>=0){ar[i][0]="";ar[i][1]="";ar[i][2]="";ar[i][3]="";ar[i][4]="";ar[i][5]="";ar[i][6]="";ar[i][7]="";ar[i][8]="";i--;}i=0;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!");}try{Stringurl="jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};DBQ=设备信息库.mdb";//直接使用当前类目录下的数据库文件Connectioncon=DriverManager.getConnection(url);System.out.println("1"+test.t1);/*Strings="selectweixiu.设备维修编号,weixiu.设备编号,shebei.设备名称,shebei.设备型号,shebei.制造厂家,shebei.安装地点,weixiu.设备维修时间,weixiu.设备维修数量,weixiu.设备维修内容fromweixiuinnerjoinshebeionweixiu.设备编号=shebei.设备编号";*/Strings="selectweixiu.设备维修编号,weixiu.设备编号,shebei.设备名称,shebei.设备型号,shebei.制造厂家,shebei.安装地点,weixiu.设备维修时间,weixiu.设备维修数量,weixiu.设备维修内容fromweixiu,shebeiwhere设备名称=test.t1and设备型号=test.t2andweixiu.设备编号=shebei.设备编号";Statementsql=con.createStatement();ResultSetrs=sql.executeQuery(s);while(rs.next()){Stringa1=rs.getString(1);Stringa2=rs.getString(2);Stringa3=rs.getString(3);Stringa4=rs.getString(4);Stringa5=rs.getString(5);Stringa6=rs.getString(6);Stringa7=rs.getString(7);Stringa8=rs.getString(8);Stringa9=rs.getString(9);ar[i][0]=a1;ar[i][1]=a2;ar[i][2]=a3;ar[i][3]=a4;ar[i][4]=a5;ar[i][5]=a6;ar[i][6]=a7;ar[i][7]=a8;ar[i][8]=a9;System.out.println(ar[i][0]);i++;}count=""+i+"";L.setText("设备信息库共有设备维修信息"+count+"条");f.repaint();con.close();}catch(SQLExceptiong){System.out.println("ECode"+g.getErrorCode());System.out.println("EM"+g.getMessage());}}publicvoidactionPerformed(ActionEvente){Stringcmd=e.getActionCommand();if(cmd.equals("确定")){f.setVisible(false);}if(cmd.equals("返回"))f.setVisible(false);}publicstaticvoidmain(String[]arg){newluruweixiu();weixiutongjia=newweixiutongji();a.showRecord();}classtest{staticStringt1;staticStringt2;}}
解决方案
解决方案二:
你要问什么?
解决方案三:
方法weixiuluru()实现在两个文本框输入两个字符串,并把输入的两个字符串用静态方法test传给方法weixiutongji(),而方法weixiutongji()则实现输出所有包含这两个字符串的记录和数量.问题是输入的两个字符串总传不到方法weixiutongji()中,编译的时候出错如下图,请各位大虾指导:初学,搞了昨天一天都没有搞明白.
解决方案四:
这个问题就没有人指导一下吗?