e.getSource() no actionPerformed [RESOLVIDO]  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
$ERVER
Debugger

Membro desde: 06/12/2010 12:52:52
Mensagens: 66
Offline

Boa noite pessoal,

To com uma duvida boba aqui, o que acontece eh o seguinte: tenho uma classe A que tem a parte GUI (Swing) e a classe B que implementa ActionListener.
Tem 4 JButtons na classe A, e add ActionListeners a todos eles (a classe B é o listener).

Sóq eu quando uso o e.getSource() do actionPerformed na classe B, aparece a descrição toda do botão em vez de só o nome dele, como mostro abaixo:

"javax.swing.JButton[,17,151,92x26,alignmentX=0.0,alignmentY=0.5,border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@7ffe01,flags=296,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=2,left=14,bottom=2,right=14],paintBorder=true,paintFocus=true,pressedIcon=,rolloverEnabled=true,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=Pesquisar,defaultCapable=true]"

Como faço pra pegar apenas o nome do botão que gerou o evento?

Mto obrigado.

This message was edited 1 time. Last update was at 26/01/2012 12:47:55

$ERVER
Debugger

Membro desde: 06/12/2010 12:52:52
Mensagens: 66
Offline

Não é upar, até pq o tópico continuav la em cima, mas é que li meu texto e vi que tava pouco explicativo.

Tentando novamente, eu queria o seguinte:



O que acontece é que não funciona e quando dou um



Me aparece isso: "javax.swing.JButton[,17,151,92x26,alignmentX=0.0,alignmentY=0.5,border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@7ffe01,flags=296,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=2,left=14,bottom=2,right=14],paintBorder=true,paintFocus=true,pressedIcon=,rolloverEnabled=true,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=Pesquisar,defaultCapable=true]"

Em vez de apenas o nome do botão.

Lembrando que os Botões estão na classe A, e o código com o ctionPerformed escrito acima está na classe B.

Mto obrigado desde já.
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Use getText() no lugar de toString().

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
$ERVER
Debugger

Membro desde: 06/12/2010 12:52:52
Mensagens: 66
Offline

Olá, ViniGodoy

Primeiramente mto obrigado por ler e postar.

Olha, eu fiz isso, mas retorna apenas o texto do botão, eu preciso do nome mesmo.

Novamente mto obrigado, tomara que possa continuar me ajudando.

abraço.
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Você quer dizer o nome da variável do botão? Isso você não vai conseguir nunca.

O que você pode fazer é ao criar o seu botão fazer:


E depois usar o getName() nesse método.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
$ERVER
Debugger

Membro desde: 06/12/2010 12:52:52
Mensagens: 66
Offline

ViniGodoy

Mto obrigado por estar ajudando, dando dicas.

Então, como tá na outra classe, nem msm pela e .getSource() posso conseguir isso?


Abração.
$ERVER
Debugger

Membro desde: 06/12/2010 12:52:52
Mensagens: 66
Offline

pensei em usar assim:



nem msm assim?
$ERVER
Debugger

Membro desde: 06/12/2010 12:52:52
Mensagens: 66
Offline

asdasdasdasdasd
Fexx
Java Ninja
[Avatar]

Membro desde: 22/06/2011 07:29:26
Mensagens: 273
Localização: São Paulo - SP
Offline

tenta assim:

Na outra classe vc cria métodos que retorna um JButton assim:




E no seu actionPerformed use assim:




Boa sorte.

" Se diante de mim não se abrir o mar, Deus vai me fazer andar por sobre as águas"
[MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Então, como tá na outra classe, nem msm pela e .getSource() posso conseguir isso?

This message was edited 1 time. Last update was at 26/01/2012 07:50:47


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
$ERVER
Debugger

Membro desde: 06/12/2010 12:52:52
Mensagens: 66
Offline

Fexx, é que to tentando deixar o menos acoplado o possível.



Retorna null. To revirando atras de algo e nada.

Mas mto obrigado por estarem ajudando. Se tiverem mais alguma dica. Vlw.
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Mas você deu o setName? Se não der, não tem como pegar nada no getName.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
$ERVER
Debugger

Membro desde: 06/12/2010 12:52:52
Mensagens: 66
Offline

Olá ViniGodoy,

Então, esse é o problema, se eu der setName() não terei como saber qual dos 4 botões que geruo o evento. Será que não tem outra forma?
Mto obrigado por disponibilizar seu tempo pra me ajudar aqui, ainda to dando uma pesquisada pra ver se consigo resolver o problema.

Abração.
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Ué, por que não? Se você der um nome diferente para cada botão, a forma que indiquei vai retornar o nome do botão que disparou o evento.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
$ERVER
Debugger

Membro desde: 06/12/2010 12:52:52
Mensagens: 66
Offline

ViniGodoy,

Só agora entendi, era pra dar setName na classe onde tá o JButton! Fia aqui e funcionou certinho!
Nossa, desculpa a burrice! hehe

Mto obrigado cara, o tópico ta resolvido, graças a você e os demais que colaboraram.

Mto obrigado msm, e um grande abraço a todos!
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team