Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Alasca

Tratamento de Eventos - Java

Recommended Posts

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:

TEventos.png.31d7e9c80d7f16629975d0aa52f67b6b.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 eventos
public 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);
    }
}


 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia. O problema esta apenas na ordem que você declarou. Seu método funciona perfeitamente.

Citação

    public void IniciarComponentes() {
        jbBotao = new JButton("Botão");
        jbBotao.setBounds(320, 270, 80, 30);
        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);
        jbBotao.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                addEventos("Botao clicado");
                System.out.println("Botao Foi Clicado");
            }
        });
    }

 

O objeto "taLog" havia sido criado depois da ação do click. 

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×