java - Como identificar o botão que foi clicado? - Stack Overflow em Português
Como identificar o botão que foi clicado? [fechada]
Tenho vários botões e eu gostaria de comparar o texto do botão clicado com uma variável do tipo String.
Isso sem usar isso:
if (evento.getSource() == botaoXl) {
// Fazer isto...
} else if (evento.getSource() == botaoY) {
// Fazer aquilo...
editada 30/07/16 às 20:12
perguntada 30/07/16 às 10:12
Por que você quer checar pela string? O texto dos botões será dinâmico? Você pode adicionar uma escuta aos botões e realizar tal comportamento. Você está usando qual GUI? – rogue_psycho 30/07/16 às 10:37
setActionCommand e getActionCommand estão aí pra isso. – Renan Gomes 30/07/16 às 11:23
Coloquei a tag swing na sua pergunta porque isso daí me parece ser swing. Se não for, então solicito que edite a pergunta especificando exatamente qual é a tecnologia ou framework que você está usando. – Victor Stafusa 30/07/16 às 19:29
Que tal usar ((JButton) evento.getSource()).getText()?
respondida 30/07/16 às 19:27
Eu acho que nem precisa do evento.getSource(). Somente o botao.getText(), desde que o botão já tenha sido renderizado, já retorna o texto do botao. – user28595 30/07/16 às 19:35
@diegofm Isso supondo que dentro do ActionListener haja alguma referência à variável do botão que faz isso. Na minha concepção, em um projeto bem feito, o botão em questão dentro do ActionListener seria tão óbvio que essa questão tornar-se-ia totalmente desnecessária e trivial. Mas olhando para o código da pergunta, parece que um super-mega-power-ActionListener genérico é usado para tudo e daí no código começam a surgir essas gambis. Infelizmente como não temos mais dados sobre o contexto do código, fica difícil sugerir alguma abordagem diferente dentro do big picture. – Victor Stafusa 30/07/16 às 19:39