ysyyrps1 2009-07-17 19:09
浏览 151
已采纳

新手请教个问题

import java.sql.*;
import java.awt.Graphics;
import java.io.Serializable;
public class JdbcDemo{
public JdbcDemo()
{
int id[]=new int[200];
int style[]=new int[200];
Double p1[]=new Double[200];
Double p2[]=new Double[200];
Double p3[]=new Double[200];
Double p4[]=new Double[200];
Double p5[]=new Double[200];
Double p6[]=new Double[200];
int i=0;
String query="SELECT id,style,p1,p2,p3,p4,p5,p6 FROM draw";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con =DriverManager.getConnection ("jdbc:odbc:CAXA");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(query);
while (rs.next()){
id[i]=rs.getInt("id");
style[i]=rs.getInt("style");
p1[i]=rs.getDouble("p1");
p2[i]=rs.getDouble("p2");
p3[i]=rs.getDouble("p3");
p4[i]=rs.getDouble("p4");
p5[i]=rs.getDouble("p5");
p6[i]=rs.getDouble("p6");
System.out.println(id[i]+","+style[i]+","+p1[i]+","+p2[i]+","+p3[i]+","+p4[i]+","+p5[i]+","+p6[i]);
i++;
}

             con.close();
 }
 catch(ClassNotFoundException e){
    e.printStackTrace();
 }
 catch(SQLException e){
    e.printStackTrace();
 }
  System.out.println(i);
}

}
class Execute extends java.applet.Applet implements Serializable
{
public Execute()
{
JdbcDemo x = new JdbcDemo();

   }
  public void paint(Graphics g)
  {
   for(int k=0;k<=i;k++)
     {
       if(style[k]==1)
        g.drawLine(p1[k],p2[k],p3[k],p4[k]);
       if(style[k]==2)
        g.drawOval(p1[k],p2[k],p3[k],p4[k]);
     }

  }

}
以上是我做一个题的代码,读取数据库的类没有问题但画图的类怎么也找不到 JdbcDemo类中读取的数组,
而且我将 JdbcDemo类已经设为了public,还望指点!

  • 写回答

1条回答 默认 最新

  • wanghaolovezlq 2009-07-17 19:25
    关注

    你这代码问题太多了,
    JdbcDemo类中读取的数组都是局部变量,你要定义成成员变量!!!

    这样才能编译通过,并运行,逻辑没动你的
    [code="java"]
    import java.sql.*;
    import java.awt.Graphics;
    import java.io.Serializable;

    public class JdbcDemo {

    public int id[] = new int[200];
    public int style[] = new int[200];
    public Double p1[] = new Double[200];
    public Double p2[] = new Double[200];
    public Double p3[] = new Double[200];
    public Double p4[] = new Double[200];
    public Double p5[] = new Double[200];
    public Double p6[] = new Double[200];
    public int i = 0;
    
    public JdbcDemo() {
    
        String query = "SELECT id,style,p1,p2,p3,p4,p5,p6 FROM draw";
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection con = DriverManager.getConnection("jdbc:odbc:CAXA");
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(query);
            while (rs.next()) {
                id[i] = rs.getInt("id");
                style[i] = rs.getInt("style");
                p1[i] = rs.getDouble("p1");
                p2[i] = rs.getDouble("p2");
                p3[i] = rs.getDouble("p3");
                p4[i] = rs.getDouble("p4");
                p5[i] = rs.getDouble("p5");
                p6[i] = rs.getDouble("p6");
                System.out.println(id[i] + "," + style[i] + "," + p1[i] + ","
                        + p2[i] + "," + p3[i] + "," + p4[i] + "," + p5[i] + ","
                        + p6[i]);
                i++;
            }
    
            con.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        System.out.println(i);
    }
    

    }

    class Execute extends java.applet.Applet implements Serializable {
    public JdbcDemo x = new JdbcDemo();

    public Execute() {
    
    }
    
    public void paint(Graphics g) {
        for (int k = 0; k <= x.i; k++) {
            if (x.style[k] == 1)
                g.drawLine(x.p1[k].intValue(), x.p2[k].intValue(), x.p3[k]
                        .intValue(), x.p4[k].intValue());
            if (x.style[k] == 2)
                g.drawOval(x.p1[k].intValue(), x.p2[k].intValue(), x.p3[k]
                        .intValue(), x.p4[k].intValue());
        }
    
    }
    

    }

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能