JButton二维数组的问题

时间:2009-09-02 01:15:07

标签: java arrays 2d jbutton

我需要在JButton的左上角放置数字(2d数组)。但是,我得到的数字结果是错误的ordder(颠倒),而不是与数组topLeftNum顺序相同。如何使这个数字显示为相同的顺序?请帮我解决我的问题。谢谢

final int ROWS = 12;

final int COLS = 12;

final static int topLeftNum[][]= {
    {-1, 1, 0, 2, 0, 0, 3, -1, 4, 0, 5, 0},
    {6, 0, 0, 0, -1, -1, 0, -1, -1, -1, 0, -1},
    {-1, 0, -1, 0, -1, 7, 0, 0, 8, -1, 0, -1},
    {9, 0, 0, 0, 10, -1, -1, -1, 11, 0, 0, -1},
    {0, -1, -1, 12, 0, 0, 13, -1, 0, -1, -1, -1},
    {0, -1, 14, -1, 0, -1, 0, -1, 15, 0, 0, 16},
    {17, 0, 0, 18, 0, -1, 19, 20, 0, -1, -1, 0},
    {0, -1, 0, 0, -1, 21, 0, 0, 0, -1, -1, 0},
    {22, 23, 0, 0, -1, 0, -1, 0, -1,24, 0, 0},
    {-1, 0, -1, 25, 0, 0, -1, 0, -1, 0, -1, -1},
    {26, 0, 0, -1, -1, 0, -1, 27, 0, 0, 0, -1},
    {-1, -1, -1, -1, -1, 0, -1, 0, -1, 0, -1, -1}
    };

public static void main(String[] args){

  SwingUtilities.invokeLater(new Runnable() {
     public void run(){
           new Lat1();
      }
   });
}

public Lat1() {
  //d = f.getText();
  //answer = d.charAt(0);
  this.getContentPane().setLayout(new GridLayout(ROWS, COLS));
  for (int j=0; j<ROWS; j++) {
    for (int i=0; i<COLS; i++)  {
       this.getContentPane().add(new Box(i, //the boxes index
                (topLeftNum[j][i] < 0) ? Color.BLACK : Color.WHITE, //pick the color
                topLeftNum[j][i], //the topleft number
                (char)(65+i), //the char inside
                this), //the action listener for the button
                i); //the index to place it on the container
       }
    }
    this.pack();
    this.setVisible(true);
}

1 个答案:

答案 0 :(得分:2)

  

ⅰ); //将其放在容器上的索引

这一行是问题所在,删除“i”并且工作正常。