我想调用父类里面的一个方法和变量,但是却一直没办法调用出来,,大家帮忙下
其中在调用的地方我用 // 
谢谢了
代码如下class chessboard extends JPanel
{      /*
     private URL blackImgURL = Gobang.class.getResource("black.gif");   
     private ImageIcon black = new ImageIcon(blackImgURL);   
     private URL whiteImgURL = Gobang.class.getResource("white.gif");   
     private ImageIcon white = new ImageIcon(whiteImgURL);   
     private URL currentImgURL = Gobang.class.getResource("current.gif");   
     private ImageIcon current=new ImageIcon(currentImgURL);  */  
    public int i, j, k;
    
    public void paintComponent(Graphics g) 
    {//绘制棋盘
       super.paintComponent(g);
       g.setColor(Color.BLACK);
       for( i = 0; i < 16; i++)
       {
           for( j =0; j < 16; j++)
           {
               g.drawLine(50, 50 + j * 30, 500, 50 + j * 30); 
               g.drawLine(50 + j * 30, 50, 50 + j * 30, 500);
           }  
       }
       for ( i = 0; i < 16; i++)
       {   
           String number = Integer.toString(i);   
           g.drawString(number, 46 + 30 * i, 45);
           g.drawString(number, 33, 53 + 30 * i);  
       } 
  //    updatePaint(g);   
   }     
}class game extends chessboard
{
        //在这里调用chessboard类的i
public int oldx, oldy;
Image black = getToolkit().getImage("black.gif");
Image white = getToolkit().getImage("white.gif");

class XiaZi extends MouseAdapter
{
public void mouseClicked(MouseEvent e)
{
oldx = e.getX();
oldy = e.getY();
}
}

class game_easy extends Applet 
{
              //就在这里调用chessboard的 i, 和方法paintComponent
}
class game_secondly extends Applet
{
}
class game_difficulty extends Applet
{
}
}

解决方案 »

  1.   

    class game_easy extends Applet 
        {
                  //就在这里调用chessboard的 i, 和方法paintComponent
                  int x = super.i; // 就在这里调用chessboard的 i
                  super.repaint(); // 在这会刷新时会调用父类的paintComponent,不要直接去调用super.paintComponent(g); // g是Graphics2D对象
        }
      

  2.   

    int x = super.i; // 就在这里调用chessboard的 i
    super.paintComponent(g);那就试试直接调用方法呗
      

  3.   

    extends这个应该不会报错的。楼主检查一下,平常都是这么写的。可能声明有的错了。祝你好运
      

  4.   

    import java.applet.Applet;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;import javax.swing.JPanel;public class Test {
    public static void main(String[] args) {
    // 要使用内部类的话
    game g = new game();
    game.game_easy ge = g.new game_easy();

    g.i = 100;
    System.out.println(ge.getI()); // 应该输出100
    ge.setI(200);
    System.out.println(g.i); // 应该输出200
    }
    }class chessboard extends JPanel
    {      /*
         private URL blackImgURL = Gobang.class.getResource("black.gif");   
         private ImageIcon black = new ImageIcon(blackImgURL);   
         private URL whiteImgURL = Gobang.class.getResource("white.gif");   
         private ImageIcon white = new ImageIcon(whiteImgURL);   
         private URL currentImgURL = Gobang.class.getResource("current.gif");   
         private ImageIcon current=new ImageIcon(currentImgURL);  */  
        public int i, j, k;
        
        public void paintComponent(Graphics g) 
        {//绘制棋盘
           super.paintComponent(g);
           g.setColor(Color.BLACK);
           for( i = 0; i < 16; i++)
           {
               for( j =0; j < 16; j++)
               {
                   g.drawLine(50, 50 + j * 30, 500, 50 + j * 30); 
                   g.drawLine(50 + j * 30, 50, 50 + j * 30, 500);
               }  
           }
           for ( i = 0; i < 16; i++)
           {   
               String number = Integer.toString(i);   
               g.drawString(number, 46 + 30 * i, 45);
               g.drawString(number, 33, 53 + 30 * i);  
    }
    // updatePaint(g);
    }   
    }class game extends chessboard
    {
        public int oldx, oldy;
        Image black = getToolkit().getImage("black.gif");
        Image white = getToolkit().getImage("white.gif");
        
        class XiaZi extends MouseAdapter
        {
            public void mouseClicked(MouseEvent e)
            {
                oldx = e.getX();
                oldy = e.getY();
            }
        }
        
        class game_easy extends Applet 
        {
         // 所有的使用也好、调用也好都必须写在方法里,而不是类的声明里
         // 所以你上面所有说的“在这里调用”云云的注释全部都标错地方了
         // 所以即便你按照楼上大虾的方法写在那里依然报错
         public void foo() {
         // 使用i
         i = 100;
         paintComponent(null); // 调用方法,参数你自己写
         }
        
         // 你也可以这样
         private int bar;
         public game_easy() {
         bar = i;
         }
         public void setI(int x) {
         i = x;
         }
         public int getI() {
         return i;
         }
         public int getBar() {
         return bar;
         }
        }
        class game_secondly extends Applet
        {
        }
        class game_difficulty extends Applet
        {
        }
    }LZ看看吧