Tratamento de Eventos - Java
Olá!
Estou com dificuldades no tratamento de eventos em Java.
Gostaria de adicionar os logs de eventos ao TextArea, com a data e hora em que ocorreram.
Comecei a implementar o evento de click do botão. Ele funciona, mas não sei como faço para jogar o log na área de texto.
Tem uma parte do código que deixei comentada, que seria utilizada para adicionar o log a todos os eventos, mas não está funcionando como esperado (não implementei todos os eventos ainda).
Os eventos que quero monitorar são:
1. Botao: MouseListener - Implementar todos os métodos desta interface.
2. Frame: MouseListener - Implementar todos os métodos desta interface.
3. Campo 1 e 2:FocusListener - Implementar todos os métodos desta interface.
4. Campo 1 e 2:KeyListener - Implementar o método keyTyped informando no log a tecla pressionada.
Seria para ser mais ou menos assim:
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.guj.com.br/uploads/default/original/3X/e/a/eaf451337ba60bab83d764ec7a1eee864aa31a52.png&key=f8598216b5cc4810e61092a501df5c8504aed88d4bd3a8f390c9618efe828ed7" width="450" alt="eaf451337ba60bab83d764ec7a1eee864aa31a52.png" />
Segue o código que estou utilizando, se alguém puder ajudar, agradeço muito!
package meventos;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class MEventos extends JFrame {
private JLabel jCampo1, jCampo2, jLog;
private JTextField jtfCampo1, jtfCampo2;
private TextArea taLog;
private JButton jbBotao;
public MEventos() {
IniciarComponentes();
}
public void IniciarComponentes() {
jbBotao = new JButton("Botão");
jbBotao.setBounds(320, 270, 80, 30);
jbBotao.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Botao Foi Clicado");
}
});
this.setSize(450, 350);
this.setLayout(null);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Tratamento de Eventos");
jCampo1 = new JLabel("Campo 1");
jCampo1.setBounds(10, 10, 50, 20);
jtfCampo1 = new JTextField();
jtfCampo1.setBounds(10, 30, 200, 20);
jCampo2 = new JLabel("Campo 2");
jCampo2.setBounds(225, 10, 50, 20);
jtfCampo2 = new JTextField();
jtfCampo2.setBounds(225, 30, 200, 20);
jLog = new JLabel("Log de Eventos");
jLog.setBounds(10, 80, 90, 20);
taLog = new TextArea("", 10, 60, TextArea.SCROLLBARS_VERTICAL_ONLY);
taLog.setBounds(10, 100, 400, 150);
taLog.setEditable(true);
this.add(jCampo1);
this.add(jtfCampo1);
this.add(jCampo2);
this.add(jtfCampo2);
this.add(jLog);
this.add(taLog);
this.add(jbBotao);
}
/**
// Não funciona corretamente
//Método que pode ser utilizado para adicionar ao log todos eventospublic void addEventos(String evento)
{
DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); //pega hora
Date date = new Date();
taLog.setText( dateFormat.format(date)+" - "+evento+"\n"+ taLog.getText());taLog.setCaretPosition(0); //posiciona na primeira linha
}
public void keyTyped(KeyEvent e)
{
addEventos("Tecla \""+e.getKeyChar()+"\" digitada no Campo 1");//pega a tecla pressionada no campo 1
}
*
/
public static void main(String[] args) {
JFrame x = new MEventos();
x.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
x.setVisible(true);
}
}Discussão (0)
Carregando comentários...