【发布时间】:2021-07-26 02:32:59
【问题描述】:
创建一个名为 reversi 的游戏,也称为黑白棋,我正在尝试将我的黑白计数器的起始位置(使用 JLabel,标记为 'W' 和 'B')添加到棋盘对角线的中间但由于某种原因,只有 2 个出现,另外 2 个没有出现,我不明白为什么。
我该如何解决?
import java.io.*;
import java.util.*;
import java.lang.*;
import java.awt.*;
import javax.swing.*;
public class Reversi
{
// instance variables - replace the example below with your own
private JFrame frame;
private JLabel userName1;
private JLabel userName2;
private JTextField textUsername1;
private JTextField textUsername2;
private JButton startButton;
private JButton [][] squares = new JButton[8][8];
private JLabel whites = new JLabel("W");
private JLabel blacks = new JLabel("B");
/**
*
*/
public Reversi()
{
// initialise instance variables
gui();
}
/**
*
*/
public void gui()
{
frame = new JFrame("Reversi Game");
frame.setSize(800,800);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//frame.setLayout(new BoxLayout(frame, BoxLayout.X_AXIS));
JPanel userInterface = new JPanel(new GridBagLayout());
userInterface.setBackground(Color.LIGHT_GRAY);
userInterface.setBorder(BorderFactory.createBevelBorder(0));
//userInterface.setPreferredSize(new Dimension(350,700));
GridBagConstraints c = new GridBagConstraints();
//c.anchor = GridBagConstraints.NORTH;
JPanel board = new JPanel();
board.setBackground(Color.GRAY);
board.setBorder(BorderFactory.createBevelBorder(1));
board.setPreferredSize(new Dimension(750, 700));
userName1 = new JLabel("Enter First player: ");
userName2 = new JLabel("Enter Second player: ");
textUsername1 = new JTextField(15);
textUsername2 = new JTextField(15);
startButton = new JButton("START");
c.gridx = 0;
c.gridy = 0;
userInterface.add(userName1, c);
c.gridx = 1;
userInterface.add(textUsername1, c);
c.gridx = 0;
c.gridy = 1;
userInterface.add(userName2, c);
c.gridx = 1;
userInterface.add(textUsername2, c);
c.gridx = 0;
c.gridy = 2;
c.gridwidth = 2;
c.anchor = GridBagConstraints.SOUTH;
userInterface.add(startButton, c);
userInterface.setBorder(BorderFactory.createTitledBorder(
BorderFactory.createEtchedBorder(), "Players/Scoreboard"));
board.setLayout(new GridLayout(8,8));
for(int i = 0; i< 8; i++){
for (int j = 0; j < 8; j++)
{
squares[i][j] = new JButton();
squares[i][j].setBackground(Color.GREEN);
board.add(squares[i][j]);
}
}
squares[4][3].add(blacks);
squares[4][4].add(whites);
squares[3][4].add(blacks);
squares[3][3].add(whites);
frame.add(board, BorderLayout.CENTER);
JPanel wrapper = new JPanel();
wrapper.add(userInterface);
frame.add(wrapper, BorderLayout.LINE_END);
makeMenuBar();
frame.pack();
frame.setVisible(true);
}
private void makeMenuBar()
{
//Finish coding later
JMenuBar menubar = new JMenuBar();
frame.setJMenuBar(menubar);
JMenu fileMenu = new JMenu("File");
menubar.add(fileMenu);
JMenuItem saveFile = new JMenuItem("Save File");
fileMenu.add(saveFile);
JMenuItem quitGame = new JMenuItem("Quit");
fileMenu.add(quitGame);
quitGame.addActionListener(ev -> {quit(); });
}
private void quit()
{
System.exit(0);
}
}
【问题讨论】:
-
Java != Javascript,它们是不同的,所以不要用两种语言标记您的问题