Olá a todos, eu estou fazendo um campo minado, mas tenho um problema a respeito do JToggleButton, pois este quando eu coloco um icone invocando o método setSelectedIcon e executo o programa e clico no JToggleButton instanciado ele não exibe o icone.
public class CampoMina extends JPanel implements ActionListener {
private JToggleButton[][] quadrados;
private ImageIcon iiBomba;
public CampoMina() {
super();
inicializarComponentes();
}
private void inicializarComponentes() {
quadrados = new JToggleButton[9][9];
for (int linha = 0; linha < quadrados.length; linha++) {
for (int coluna = 0; coluna < quadrados[linha].length; coluna++) {
quadrados[linha][coluna] = new JToggleButton();
quadrados[linha][coluna].setPreferredSize(new Dimension(25, 25));
quadrados[linha][coluna].addActionListener(this);
add(quadrados[linha][coluna]);
}
}
iiBomba = new ImageIcon("bomba.png");
setLayout(new GridLayout(9, 9));
colocarMinas();
}
private void colocarMinas() {
int CT = 0;
while (CT < 9) {
int linha = (int) (Math.random() * 9);
int coluna = (int) (Math.random() * 9);
if (quadrados[linha][coluna].getSelectedIcon() == null) {
quadrados[linha][coluna].setName("bomba");
quadrados[linha][coluna].setSelectedIcon(iiBomba);
CT++;
}
}
}
private void colocarNumeros() {
for (int linha = 0; linha < quadrados.length; linha++) {
for (int coluna = 0; coluna < quadrados[linha].length; coluna++) {
if ("B".equals(quadrados[linha][coluna].getName())) {
}
}
}
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setContentPane(new CampoMina());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() instanceof JToggleButton) {
JToggleButton tb = (JToggleButton) e.getSource();
// if ("bomba".equals(tb.getName())) {
// tb.setIcon(iiBomba);
// }
if ("bomba".equalsIgnoreCase(tb.getName())) {
}
}
}
}