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

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

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);

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

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.

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