Opa to tentando fazer o seguinte no meu codigo… se o botao estiver com tal icone ele faz uma ação, caso o contro faz outra…
Ele ta dando erro, alguem sabe oq esta errado?
public void mousePressed(MouseEvent e) {
for (int linha = 1; linha <= n; linha++) {
for (int coluna = 1; coluna <= n; coluna++) {
if (e.getSource() == buttons[linha][coluna]) {
// Clique com o botao esquerdo do mouse.
if (e.getButton() == MouseEvent.BUTTON1) {
if (buttons[linha][coluna].getIcon().equals(imagem)){
codigo…}
else { codigo }
}
// Clique com botao direito do mouse.
else if (e.getButton() == MouseEvent.BUTTON3) {
buttons[linha][coluna].setIcon(imagem2);
}
}
}
}
}
}
Briggado
Vou ser bem sincero, não entendi;
Eu tenho dois modos de trabalhar com botões;
Exemplo
Crio o botão
JButton btnSalvar = new JButton( "Salvar");
btnSalvar.setSize(130,35);
btnSalvar.setLocation(235, 265);
add (btnSalvar);
Implementando o “MouseListener”
public void mouseReleased(MouseEvent e) {
if (e.getSource().equals(btnSalvar)){
//evento
}
}
Sem implementar o “MouseListener”
btnSalvar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
try {
//evento
} catch (Exception e2) {
// TODO: handle exception
}
}
});
Bom, veja se algum consegue atender melhor a sua aplicação x)
EDIT:
Tente usar “.equals” no lugar de “==”
if (e.getButton().equals(MouseEvent.BUTTON1))
Só coloquei uma parte do código que é a parte do botão… o codigo esta funcionado, só não funciona qdo tento fazer a comparação com o o icone do botao…
fiz o teste com um botao separado fora do array, só para fazer o teste e da certo:
if (b1.getIcon().equals(imagem)){
só que quero colocar essa funcao num array pq o numero de JButtons pode alterar.
Tentei com o equals e não funciona assim, só com o == mesmo.
codigo que cria os botoes:
for (linha = 1; linha <= n; linha++) {
for (coluna = 1; coluna <= n; coluna++) {
buttons[linha][coluna] = new JButton();
buttons[linha][coluna].setPreferredSize(new Dimension(45, 45));
buttons[linha][coluna].addMouseListener(this);
tela.add(buttons[linha][coluna]);
}
}
Agora entendi melhor x)
Coloca a parte que você adiciona um ícone a esse botão também;
EDIT:
Acho que dei o exemplo anterior errado;
Aqui não é com o “.equals”?
if (e.getSource() == buttons[linha][coluna])
//Para
if (e.getSource().equals(buttons[linha][coluna]) )
Sou iniciante em Java, então não tenho tanta experiencia assim;
Ambos funcionam, mas infelizmente ele n consegue pegar o icone do botao para comparar, é ai que da o erro o resto tudo funcionou…
Oq eu realmente quero no programa é que quando ele esteja com aquele icone o primeiro botao do mouse não consiga mais fazer nada… mas n to conseguindo e tenho ctz q eh por causa do array, pq qdo coloquei para comparar com um botao especifico funcionou =°(…