Pessoal estou com uma duvida eu quero clicar na categoria e pegar o id do produto
exibindo esse jRadioButton da certo faço um for e percorro ate achar o que esta marcado e dentro da propriedade dele eu tenho escrito o ID que eu coloquei a cor de brando para não exibir
mas eu queria eliminar esse radiobuttton e deixar so para clicar no produto alguma ideia
RESOLVIDO AJUDA pega click do botão
23 Respostas
Esse produto está em que tipo de elemento?
jLabel
Por que não troca para JButton? Seria o mais adequado, não?
uai pode ser, tava pensando adicionar todos os buttons criados em uma ArrayList
depois percorrer o name de cada um e dentro desse loop ter um if()botaodalista.getSource()
sera que da ?
na verdade seria assim
public void actionPerformed(ActionEvent e) {
if (e.getSource() == b1) {
System.out.println(“B1”);
} else if (e.getSource() == b2) {
System.out.println(“B2”);
}
}
Para que tanta complicação?
Se você estudar um pouco mais a fundo, vai descobrir que pode, a partir de vários JButton, chamar o mesmo listener.
A partir disso, você pega a action (basicamente o nome do botão) e verifica qual é o produto.
Sim eu fiz isso
darla_machado vc diz fazer algo assim ?
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JOptionPane;
public class ButtonHandler implements ActionListener {
private JButton ok, cancela;
public ButtonHandler(JButton ok, JButton cancela){
this.ok = ok;
this.cancela = cancela;
}
public void actionPerformed(ActionEvent evento) {
if(evento.getSource() == ok)
JOptionPane.showMessageDialog(null, "O botão OK foi clicado");
if(evento.getSource() == cancela)
JOptionPane.showMessageDialog(null, "O botão CANCELA foi clicado");
}
}
Mais ou menos isso.
Troque os ifs por switch. Mais elegante
Mas seguinte tenho uma duvida como eu vou fazer esse if( == ok)evento.getSource()
porque esses botão não são estaticos são dinamicos uma hora em so 3 outra hora vem 10 depende do cadastro de categorias
Foi ai que pensei no Array list percorrendo ate o if bater ? ou vc pensou de outra forma ?
Deixa eu ver se eu lembro, faz anos que não brinco com swing.
O objeto de ActionEvent possui um método, o getActionCommand(), ele retorna o actionCommand do elemento que requisitou a ação.
Então, para cada JButton, você pode definir o actionCommand específico e, então, validar no switch qual foi o botão que fez a chamada (obtendo, assim, o produto selecionado).
Pensei de outra forma, o array é muito complexo.
Eu faria algo como
JButton prd1 = new JButton();
prd1.addActionListener(oTalDoListenerQueFalei);
prd1.setActionCommand("produto1");
JButton prd2 = new JButton();
prd2.addActionListener(oTalDoListenerQueFalei);
prd2.setActionCommand("produto2");
//E no eventlistener
String cmd = event.getActionCommand();
switch(cmd) {
case "produto1":
//Faz algo
break;
case "produto2":
//Faz outro algo
break;
}
Só que darlan eu entendi so que aqui String cmd = event.getActionCommand(); eu estou pegando
O ActionComand do que foi clicado ate ai tudo bem mas nessa parte do case “produto1” como vou obter cada botão para comparar com o String cmd ?
Esses botões serão dinâmicos?
Se sim, você pode criar um mapa onde o actionCommand será a chave e o produto pode ser o valor. Aí, quando você ler essa informação, faz um get no map e obtém o produto em questão.
Sim serão dinamicos
Map<String, Produto> prods = new HashMap<String, Produto>();
//Cada JButton criado
prods.put(produto.getNome(), produto);
btnProduto.setActionCommand(produto.getNome());
darlan_machado quando vc tiver um tempo pode me ajudar via teamviewer eu preciso muito disso e acho que não entendi muito bem
Se consegue ou não ?
Cara, sinceramente, não.
Eu não sou consultor, faz mais de 2 anos que não dou aulas e não vou dispor do meu tempo para isso.
Além disso, talvez você ache que o valor que eu cobraria por hora de consultoria seria alto demais.
Mano ja consegui teta fiz de uma forma mais correta aqui, não seria aula pois disponibilizo meu precioso tem sempre ajudando quem precisa de ajuda pois todos nos precisamos um dia, mas obrigado bom descanso para você
Todo mundo precisa de ajuda e todo mundo precisa aprender a programar.
Eu ajudo, respondo aqui, não é mesmo?
Agora, acessar a tua máquina via team_viewer, mostrar detalhes, ensinar isso ou aquilo, é sim, uma aula. Vai a um advogado e pergunta para ele qualquer coisa, ele vai cobrar a hora dele. É simples.
Conseguiu fazer a tela, pow, maravilha. Se você se esforçar um pouco mais, consegue resolver e fazer do modo que sugeri.

