【问题标题】:Corresponding element in arrays数组中的对应元素
【发布时间】:2016-05-14 03:25:40
【问题描述】:

我想知道用new创建一个JLabel对象,并将它放在数组中对应的元素中。 (grid[row][col]) 的意思。我正在创建一个井字游戏程序。我正在使用 for 循环来初始化网格。 这是我的 for 循环:

package tic.tac.toe;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TicTacToe extends JFrame implements ActionListener, MouseListener
{
 Container content = this.getContentPane();
 //Program Arrays
JLabel [][] grid = new JLabel[' '][' '];
char [][ ]game = new char [' '][' '];
// Graphical User-interface Fields
JButton restart = new JButton("Restart");
JPanel p = new JPanel();
JLabel status = new JLabel("Welcome to Tic-Tac-Toe");
//Primitive Fields
int numClicks = 0 ;
boolean isDone = false;
boolean isXTurn = true;

public TicTacToe()
{//GUI
    this.setVisible(true);
    this.setTitle("Tic-Tac-Toe");
    this.setSize(900,500);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //SetLayout

    //Add Status Label
    content.add(status);
    status.setOpaque(true);
    status.setBackground(Color.yellow);
    status.setForeground(Color.blue);
    status.setFont(new Font("Helvetica", Font.BOLD, 12));
    //Initailize the Main Panel
    p.setLayout(new GridLayout(3,3));
    p.setBackground(Color.black);
    content.add(p, BorderLayout.CENTER);
    //Initialize the grid
    for(int row = 0; row<=3;)
    {
        for (int col = 0; col<=3;)
        {
           JLabel lbl = new JLabel();
           grid[row][col] = lbl;
           grid[row][col].addMouseListener(this);
           grid[row][col].setOpaque(true);
           grid[row][col].setBackground(Color.white);
           grid[row][col].setFont(new Font("Helvetica", Font.BOLD, 39));
           p.add(grid[row][col]);



        }
    }

}





@Override
public void actionPerformed(ActionEvent ae) 
{

}

@Override
public void mouseClicked(MouseEvent me)
{

}

@Override
public void mousePressed(MouseEvent me)
{

}

@Override
public void mouseReleased(MouseEvent me) 
{

}

@Override
public void mouseEntered(MouseEvent me) 
{

}

@Override
public void mouseExited(MouseEvent me) 
{

}


public static void main(String[] args) {
    TicTacToe tTT = new TicTacToe();
}

}

【问题讨论】:

  • 你问什么,我不清楚
  • 这显然是功课帮助,你付出了零努力。
  • @ChristopherSchneider 我不想把整个代码放进去,因为它太长了,但这是我实际拥有的
  • public class TicTacToe extends JFrame implements ActionListener, MouseListener 这不是 OO。你的问题是什么?
  • @ChristopherSchneider 它是教师的指导方针之一,我的问题是如何使用 new 创建 JLabel 并将其放置在该字段中的网格数组中的相应元素中。

标签: java swing tic-tac-toe


【解决方案1】:

我会给你一些提示,否则对你没有帮助我会做你的功课:

  1. Java 中的数组是这样定义的:Type[] varName = new Type[NumberOfOccurences]; 或更多维度 Type[][] varName = new Type[NumberOfOccurencesForDimension1][NumberOfOccurencesForDimension2];。
  2. 将表放入一维数组需要通过myArray[rowIndex * colIndex + colIndex] = objectToPutIn;计算其索引
  3. 将表格放入二维数组很简单:myArray[rowIndex][colIndex] = objectToPutIn;
  4. Java 中的数组索引从 0 开始。因此一个元素的数组位于索引 0。

【讨论】:

  • 哦顺便说一句,我的原始代码是正确的,只是我的一个单元格比其他单元格大......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-07
  • 2020-10-21
  • 2021-08-14
  • 2020-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多