Como DESATIVAR a função de um botão em java?

4 respostas
java
J
public void actionPerformed(ActionEvent e){

    if(e.getSource() == btnR){
        forma = 0;
        painel.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                x = e.getX();
                y = e.getY();
                Retangulo rect = new Retangulo(x, y, 100, 100, cor);
                painel.addFigura((Retangulo)rect);
            }
        });
        repaint();
    }

Boa tarde gente, nessa método o botão “Retangulo” está criando um quadrado conforme eu clico em algum lugar do painel, porém, quando eu clico em outro botão, tipo “Circulo” ele cria um Circulo e um R-E-T-A-N-G-U-L-O juntos ;-; provavelmente é porque quando clico no botão “Retangulo” ele ativa a função pra sempre, como eu cancelo,desativo, destruo, aniquilo, extermino essa função pra parar de ficar colocando retangulos na minha lista de formas AAAAAA sos

4 Respostas

D

Esse código que você colocou não ajuda muito não, pois não mostra nem a lógica de pintura. Mas você pode tentar fazer isto quando o método do botão tipo “Circulo” for executado:

painel.removeFigura(rect);
painel.addFigura(circulo);
Chaybelucas

Cara
"Desativar função", do jeito que cê tá querendo, acho que não dá.
Mas criei algo semelhante e eu tinha uma variável controladora.

Tipo, digamos que tenho dois botoes. B1 e B2 (bananas de pijamas, issae)
E tenho uma variavel controladora, chamada cont

Quando clico em B1, eu atribuo o valor 1 para cont

if (e.getSource() == B1) { if (cont >1) { cont = 0; } else { // sua função pra adicionar fulano na tela // quando encerrar, coloque cont = 0; pra reiniciar tudo } }

O mesmo vale para os outros botões.

Aí você clica no botão B2
Funciona da mesma forma. Basta clicar no botão. Se for 0 (e vai ser, porque você disse que seria no final da ação do botao anterior), ele vai adicionar o que você mandar ele adicionar em B2

Acho que funciona assim
Sei lá
Me veio essa ideia agora.

Compartilhe os bugs

J

Desculpa a falta de detalhes, o programa precisa desenhar formas em um painel, pra isso, quando eu clicar em um botão, tipo “quadrado”, ele teria que criar uma forma e adiciona-la a uma lista, o painel tem uma função pra imprimir todas as formas na lista, o que eu preciso é de um jeito que ao pressionar outro botão, tipo “circulo”, o primeiro botão não esteja mais ativado, e só adicionando um circulo a lista.

Chaybelucas

Já pensou em usar ToggleButton ?
Quando um for ativado, desativa os demais.

Criado 26 de abril de 2017
Ultima resposta 26 de abr. de 2017
Respostas 4
Participantes 3