[Resolvido]Problema com addActionListener e actionPerformed
6 respostas
dianasmagalhaes
olá pessoal,
estou a terminar uma aplicação muito simples, e reparei que me faltavam algumas mensagens de feedback.
Este botão serve para iniciar uma das funcionalidades da aplicação, como enviar pacotes de dados para um dispositivo até que ele responda… mas a minha label de informação ao utilizador não está a funcionar.
No entanto dentro desse método handleOKConfig() tem outra indicação ao utilizador de quando termina de enviar os pacoetes, ou seja mensagem de sucesso --> statusLabel.setText(“Status: Target device in bootload mode!”); e funciona sempre.
Acho que o problema deve ser no addActionListener ou actionPerformed. Alguém me pode dar uma dica…
1- poderia ter colocado seu codigo entre tags,pra melhor visualização code.
2- msm que vc clique em ok no seu jbutton ele manda a mensagem correta msm não sendo.
ve o que esta no “e” ctrl shift + i .
não sei se é isso!
dianasmagalhaes
dianasmagalhaes:
olá pessoal,
estou a terminar uma aplicação muito simples, e reparei que me faltavam algumas mensagens de feedback.
Este botão serve para iniciar uma das funcionalidades da aplicação, como enviar pacotes de dados para um dispositivo até que ele responda… mas a minha label de informação ao utilizador não está a funcionar.
JButton okButton = new JButton("START");
okButton.setAlignmentY(0.5f);
okButton.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
[color=red]statusLabel.setText("Status: Sending..."); [/color]
System.out.println(statusLabel.getText());
handleOKConfig(); // chama o método que faz o envio dos pacotes.
}
});
linha 5 - ao executar, a label não mostra esta mensagem, mantém a anterior. Mas ao fazer debug o valor contido na label é Status: Sending…
linha 6 - ao executar, mostra a mensagem Status: Sending…
Caso coloque em comentário a linha 7, a label mostra a mensagem Status: Sending…
Obrigado!
ajinfotec
mano tive um problema parecido uma vez. resolvi pondo todo codigo do evento em um metodo
da classe chamadora. assim:
publicclassGujGui{publicGujGui(){JButtonokButton=newJButton("START");okButton.setAlignmentY(0.5f);okButton.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){action();}});}privatevoidaction(){statusLabel.setText("Status: Sending...");System.out.println(statusLabel.getText());handleOKConfig();// chama o método que faz o envio dos pacotes. }}
ve ai mano se da.
dianasmagalhaes
ajinfotec:
mano tive um problema parecido uma vez. resolvi pondo todo codigo do evento em um metodo
da classe chamadora. assim:
publicclassGujGui{publicGujGui(){JButtonokButton=newJButton("START");okButton.setAlignmentY(0.5f);okButton.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){action();}});}privatevoidaction(){statusLabel.setText("Status: Sending...");System.out.println(statusLabel.getText());handleOKConfig();// chama o método que faz o envio dos pacotes. }}
ve ai mano se da.
obg pela dica, mas tinha tentado isso… tentei de novo e realmente não dá…
=/
ajinfotec
mano sei la o que pode ser esse metodo handleOKConfig() executa alguma thread
atualmente to tendo um problema semelante mais é por causa do controle da execução
delas.
dianasmagalhaes
Obrigado mas já consegui resolver o problema, da seguinte forma:
JButton okButton = new JButton("START");
okButton.setAlignmentY(0.5f);
okButton.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
statusLabel.setText("Status: Sending...");
SwingUtilities.invokeLater(new Runnable() {
public void run() {
handleOKConfig();
}
});
}
});
Deixo aqui a minha resolução, caso alguém tenha o mesmo problema =)