#java
#java
Вопрос:
Повторюсь, я пытаюсь добавить фигуры в создаваемую мной игру в шашки, однако, когда я добавляю кнопки на доску, они вместо этого добавляются рядом с квадратами на доске. Ниже приведен мой код:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Board
{
public static void main(String[] args)
{
JFrame board = new JFrame("Draughts");
JPanel panel = new JPanel();
GridLayout grid = new GridLayout(8,8);
board.setSize(800,800);
panel.setSize(800,800);
panel.setLayout(grid);
final int SIZE = 8;
board.setTitle("Draughts");
board.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Square[][] buttons = new Square[SIZE][SIZE];
for (int a = 0; a < SIZE; a )
{
for (int b = 0; b < SIZE; b )
{
if((a b)%2 != 0)
{
buttons[a][b] = new Square(a, b, true);
panel.add(buttons[a][b].getButton());
panel.add(buttons[a][b].getPiece());
}
else
{
buttons[a][b] = new Square(a, b, false);
panel.add(buttons[a][b].getButton());
}
}
}
board.setContentPane(panel);
board.setVisible(true);
}
}
и
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
public class Square
{
Border borderE = BorderFactory.createEmptyBorder();
int xPosition;
int yPosition;
ImageIcon white = new ImageIcon("empty1.png");
ImageIcon black = new ImageIcon("empty2.png");
ImageIcon selectedSquare = new ImageIcon("selected.png");
ImageIcon redPiece = new ImageIcon("red.png");
ImageIcon redKing = new ImageIcon("red-king.png");
ImageIcon whitePiece = new ImageIcon("white.png");
ImageIcon whiteKing = new ImageIcon("white-king.png");
JButton btnSquare = new JButton();
JButton btnPiece = new JButton();
public boolean isWhite;
public int pieceHere;
public Square(int x, int y, boolean isW)
{
xPosition = x;
yPosition = y;
isWhite = isW;
int redPieceHere = 1;
int whitePieceHere = 2;
int blankSpace = 0;
btnSquare.setBorder(borderE);
btnPiece.setBorder(borderE);
if (isWhite == true)
{
btnSquare.setIcon(white);
//for rows 0,1,2, check black/white, put red if white
//for rows 5,6,7, check if white, put white piece if white
for (y = 0; y < 8; y )
{
if (y < 3)
{
pieceHere = redPieceHere;
btnPiece.setIcon(redPiece);
}
else if(y > 4)
{
pieceHere = whitePieceHere;
btnPiece.setIcon(whitePiece);
}
else
{
pieceHere = blankSpace;
}
}
}
else
{
btnSquare.setIcon(black);
}
}
public JButton getButton()
{
return btnSquare;
}
public JButton getPiece()
{
return btnPiece;
}
public static void main(String[] args)
{
}
}
Я очень ценю любую помощь, поскольку это загоняет меня в тупик. У меня такое чувство, что это как-то связано с добавлением нового параметра в квадрат, а затем добавлением его в цикл в Board, однако я не совсем уверен, как это сделать, чтобы это работало, и мне нужна помощь.
Большое спасибо, Джек
Комментарии:
1. setLocation(x, y) может быть здесь полезным. Вы пробовали это? docs.oracle.com/javase/1.5.0/docs/api/java/awt /…
2. Где бы вы использовали setLocation?
3. На кнопке..