Я пытаюсь создать несколько кнопок в сетке, используя цикл for, но из моего любопытства он генерирует случайное количестJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Я пытаюсь создать несколько кнопок в сетке, используя цикл for, но из моего любопытства он генерирует случайное количест

Сообщение Anonymous »

Предложил себе задачу создать простую игру-тральщик, но, к моему удивлению, при запуске программы она генерирует случайное количество кнопок каждый раз, когда я ее тестировал (должно было создать 81 кнопку). Не знаю, что я здесь делаю не так. Вот код:

Код: Выделить всё

package project;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class MineSweeper {

int width;
int height;

JFrame frame = new JFrame("Mine Sweeper");
JPanel panel;
JButton buttons[][] = new JButton[9][9];
JPanel textPanel = new JPanel();

public MineSweeper(int width, int height) {

this.width = width;
this.height = height;

frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(width, height);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setLayout(new BorderLayout());

JLabel label = new JLabel();

label.setText("Mine Sweeper!");
label.setHorizontalAlignment(JLabel.CENTER);
label.setFont(new Font("arial", Font.BOLD, 30));
label.setBackground(Color.gray);
label.setForeground(Color.orange);

frame.add(BorderLayout.NORTH, textPanel);
textPanel.setLayout(new BorderLayout());
textPanel.add(label);
textPanel.setBackground(Color.gray);

panel = new JPanel();
panel.setLayout(new GridLayout(9, 9, 5, 5));
panel.setBackground(Color.gray);
frame.add(BorderLayout.CENTER, panel);

for (int r = 0; r < 9; r++) {
for (int c = 0; c < 9; c++) {

JButton mines = new JButton("");
buttons[r][c] = mines;
panel.add(mines);

mines.setFocusable(false);
mines.setBackground(Color.lightGray);
panel.getComponentCount();

mines.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

}
});
}
}
}
}

Я пытался создать несколько кнопок на панели, но не смог, так как количество появляющихся кнопок случайное (от 1 до 81), не знаю что здесь мои ошибки. Я делаю это в учебных целях.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -but-for-m
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»