我以前做过,不知道你怎么弄的。
我是这样干的:
棋子写了个对象,里面有一些坐标元素。
兴建一个集合,如HashSet
然后对弈的过程中,双方每走一步,就往HashSet里添加棋子对象。
画的时候遍历棋子一个个画就好。
棋子可以是一张图片,也可以自己画,我是自己画的。

解决方案 »

  1.   

    public class wzq 
    {
        public static void main(String[] args) 
        {
            wzqFrame Frame = new wzqFrame();
           Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           Frame.show();    
        }
    }
    class wzqFrame extends JFrame
    {
       public wzqFrame()
     {
        setTitle("wzq");
      setSize(default_width,default_height);
      wzqPanel Panel = new wzqPanel();
      Container contentPane = getContentPane();
      contentPane.add(Panel);
     }
     public static final int default_width = 620;
     public static final int default_height = 500;
    }
    class wzqPanel extends JPanel
    {
        public wzqPanel()
        {
          addMouseListener(new MouseHandler());
        }
      public void paintComponent(Graphics g)
      { 
       super.paintComponent(g);
       Graphics2D g2 = (Graphics2D)g;
       double leftX = 10;
      double topY = 10;
      double width = 450;
      double height = 450;
      addMouseListener(new MouseHandler());
      Rectangle2D rect = new Rectangle2D.Double(leftX,topY,width,height);
      g2.draw(rect);
      for(int i=1;i<=14;i++)
      {g2.draw(new Line2D.Double(i*30+leftX,topY,i*30+leftX,460));
       g2.draw(new Line2D.Double(topY,i*30+leftX,460,i*30+leftX));
      }
      for(int i=0;i<15;i++)
             for (int j=0;j<15;j++)
               {
                 if( zb[i][j] = 1)
                 g2.draw( new Ellipse2D.Double(map. zb[i]*30-15,zb[j]-15,zb[i]*30+15,zb[j]*30+15))
               }
        }
    }  
     
      private class MouseHandler extends MouseAdapter
      {
       public void mouseClicked(MouseEvent Event)
        {
       Point2D p=Event.getPoint();
       int mx = (int)p.getX();
          int my = (int)p.getY();
          int mx1=(mx-10)%30;/*鼠标偏离网格的距离*/
          int mx2=(int)(mx-10)/30;/*鼠标点击在第几格*/
          int my3=(my-10)%30;
         int my4=(int)(my-10)/30;
                    int a,b,x,y;
          if(mx1>=0 && mx1<15)
          {
                        x=mx2*30+mx1;
                     }
                    else
                    {
                        x=(mx2+1)*30+mx1;
                    }                
          if(my3>=0 && my3<15)
          {
              y=my4*30+my3;
       }
        else
        {
           y=(my4+1)*30+my3;
                    }
                    
            }
      }
      

  2.   

    有点乱,将就看一下结构吧,我想用下面的代码
    int[][] zb=new int [15][15];
        for(i=0;i<15;i++)
         { for(j=0;j<15;j++)
            zb[i][j]=0;
         }
    定义一个数组,该放在什么地方呢?