Jump to content
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:
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 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);
    }
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By nelson99
      Bom dia estou com o seguinte erro que não consigo resolver, estou tentando inserir uma parte de código html com js, no meu Html, através do appendChild, mas esta dando erro, o seguinte erro: Null is not an Object ( Evaluation 'DOM.transacaoContainer.appendChild(tr) )
       
      ja tentei colocando this.transacaoContainer.appendChild(tr);
      ja tentei colocar usando o insertBefore e nada. sempre o mesmo erro
       
      aqui esta o código :
       
       
       
       
      const DOM = {
                 
                  transacaoContainer: document.querySelector('.mytbody'),
       
                  addTransaction(transaction, index){
       
               
                  const tr = document.createElement('tr');
                  tr.innerHTML = DOM.innerHTMLtransaction(transaction);
                  DOM.transacaoContainer.appendChild(tr);
       
                      
       
              },
       
    • By Adriano Costa
      Bom dia amigos, sou novo na programação e estou aprendendo a gerar QRCode e BarCode, eu assistindo um vídeo gringo fiz um programa idêntico, mas o meu não esta funcionando, não apresenta erro no código, mas não gera os códigos. Estou usando as bibliotecas externas core 3.4.1 e a javase 3.4.1.
       
      package demo;
      //import java.awt.BorderLayout;
      import java.awt.EventQueue;
      import javax.swing.JFrame;
      import javax.swing.JPanel;
      import javax.swing.border.EmptyBorder;
      import javax.swing.JTextField;
      import javax.swing.ImageIcon;
      import javax.swing.JButton;
      import javax.swing.JLabel;
      import javax.swing.JOptionPane;
      import javax.swing.border.LineBorder;
      import helpers.ZXingHelper;
      import java.awt.Color;
      import java.awt.event.ActionListener;
      import java.awt.event.ActionEvent;
      public class JFrameMain extends JFrame {
          
          /**
           * 
           */
          private static final long serialVersionUID = 1L;
          private JPanel contentPane;
          private JTextField textFieldProductId;
          //private JButton ButtonQRCode;
          //private JButton ButtonBarCode;
          private JLabel labelImage;
          /**
           * Launch the application.
           */
          public static void main(String[] args) {
              EventQueue.invokeLater(new Runnable() {
                  public void run() {
                      try {
                          JFrameMain frame = new JFrameMain();
                          frame.setVisible(true);
                      } catch (Exception e) {
                          e.printStackTrace();
                      }
                  }
              });
          }
          /**
           * Create the frame.
           */
          public JFrameMain() {
              setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              setBounds(100, 100, 450, 300);
              contentPane = new JPanel();
              contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
              setContentPane(contentPane);
              contentPane.setLayout(null);
              
              textFieldProductId = new JTextField();
              textFieldProductId.setBounds(35, 23, 362, 20);
              contentPane.add(textFieldProductId);
              textFieldProductId.setColumns(10);
              
              JButton ButtonQRCode = new JButton("QR Code");
              
              ButtonQRCode.addActionListener(new ActionListener() {
                  public void actionPerformed(ActionEvent e) {
                      
                      do_ButtonQRCode_actionPerformed(e);
                      
                      }
                  
              });
              ButtonQRCode.setBounds(76, 65, 89, 23);
              contentPane.add(ButtonQRCode);
              
              JButton ButtonBarCode = new JButton("Bar Code");
              ButtonBarCode.addActionListener(new ActionListener() {
                  public void actionPerformed(ActionEvent e) {
                      do_ButtonBarCode_actionPerformed(e);
                                  
                  }
              });
              ButtonBarCode.setBounds(241, 65, 89, 23);
              contentPane.add(ButtonBarCode);
              
              JLabel labelImage = new JLabel("");
              labelImage.setBorder(new LineBorder(new Color(0, 0, 0)));
              labelImage.setBounds(47, 101, 346, 118);
              contentPane.add(labelImage);
          }
              protected void do_ButtonQRCode_actionPerformed(ActionEvent e) {
                  String productId = textFieldProductId.getText();
                  if(productId.isEmpty()) {
                      JOptionPane.showMessageDialog(null,"Por favor preencha o campo acima.");
                  }else {
                      byte [] result = ZXingHelper.getQRCodeImage(productId, 200, 200);
                      labelImage.setIcon(new ImageIcon(result));
              }
              
              
      }
              protected void do_ButtonBarCode_actionPerformed(ActionEvent e) {
                  String productId = textFieldProductId.getText();
                  if(productId.isEmpty()) {
                      JOptionPane.showMessageDialog(null,"Por favor preencha o campo acima.");
                  }else {
                      byte [] result = ZXingHelper.getBarCodeImage(productId, 200, 200);
                      labelImage.setIcon(new ImageIcon(result));
                  
                      
                  
                      
                  }
              }
              
      }
       
      package helpers;
      import java.io.ByteArrayOutputStream;
      import java.util.Hashtable;
      import com.google.zxing.BarcodeFormat;
      import com.google.zxing.EncodeHintType;
      import com.google.zxing.client.j2se.MatrixToImageWriter;
      import com.google.zxing.common.BitMatrix;
      import com.google.zxing.oned.Code128Writer;
      import com.google.zxing.qrcode.QRCodeWriter;
      import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

      public class ZXingHelper {
          public static byte[] getQRCodeImage (String text, int width, int height) {
              
              try {
                  QRCodeWriter qrCodeWriter = new QRCodeWriter();
                  BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);
                  ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
                  MatrixToImageWriter.writeToStream(bitMatrix, "png", byteArrayOutputStream);
                  return byteArrayOutputStream.toByteArray();
                  
          }catch (Exception e) {
              return null;
          }
          }
          
          public static byte [] getBarCodeImage(String text, int width, int height) {
              
              try {
                  Hashtable<EncodeHintType, ErrorCorrectionLevel> hintMap = new Hashtable<>();
                          hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
                          Code128Writer writer = new Code128Writer();
                          BitMatrix bitMatrix = writer.encode(text, BarcodeFormat.CODE_128, width, height);
                          ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
                          MatrixToImageWriter.writeToStream(bitMatrix, "png", byteArrayOutputStream);
                          return byteArrayOutputStream.toByteArray();
              } catch (Exception e) {
                  System.err.println(e.getMessage());
              }
              return null; 
                  
              }
      }
       
       
    • By Adriano Costa
      Fala pessoal tudo blz? Gostaria de fazer uma pergunta sobre logica de programação, eu criei um ToDo List  em Java Web, no meu projeto eu tenho uma tela de login que depois de logar o usuário acessa a lista de tarefa dele, a minha pergunta é, como eu poderia fazer para que cada usuário tenha acesso somente a sua lista de tarefas. Me da uma luz de que forma eu poderia fazer essa logica. Desde já agradeço. 
    • By Adriano Costa
      Fala galera!!!
      Eu sou novo na programação e estou precisando de uma ajuda, estou tentando fazer um for dentro dos scriplets mas esta dando erro. É a parte do read do meu crud. Quando eu aço o for através da camada controller ele funciona, mas na pagina jsp ele da um erro.
       
      <%@ page language="java" contentType="text/html; charset=utf-8"
          pageEncoding="utf-8"%>
      <%@page import="model.JavaBeans"%>
      <%@page import="java.util.ArrayList"%>  
      <%
          ArrayList<JavaBeans> lista = (ArrayList<JavaBeans>)request.getAttribute("contatos");
          for (int i = 0; i < lista.size(); i++){
              out.print(lista.get(i).getIdlista());
          }
      %>
       
      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="utf-8">
      <title>Lista de Tarefas</title>
      <link rel="stylesheet" href="css/styles.css">
      </head>
      <body>
          <div id= "login-container">
              <h1>Lista de Tarefas</h1>
              <table>
                  <thead>
                      <tr>
                          <th>Código</th>
                          <th>Titulo</th>
                          <th>Descrição</th>
                          <th>Data</th>
                          <th>Status</th>
                          <th>Prioridade</th>
                      </tr>
                  </thead>
                  <tbody>
                      
                  </tbody>
              </table>
              <form name="frmContato" action="listarTarefa">
                  
                  <input type="submit" value="Cadastrar" onclick="validar()">
              </form>
              
          </div>
          <script src="scripts/validador.js"></script>    
      </body>
      </html>
       
      E esse é o erro
       
      HTTP Status 500 – Internal Server Error
      Type Exception Report
      Message An exception occurred processing [/listaTarefas.jsp] at line [8]
      Description The server encountered an unexpected condition that prevented it from fulfilling the request.
      Exception
      org.apache.jasper.JasperException: An exception occurred processing [/listaTarefas.jsp] at line [8] 5: 6: <% 7: ArrayList<JavaBeans> lista = (ArrayList<JavaBeans>)request.getAttribute("contatos"); 8: for (int i = 0; i < lista.size(); i++){ 9: out.print(lista.get(i).getIdlista()); 10: } 11: %> Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:611) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:500) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:378) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:326) javax.servlet.http.HttpServlet.service(HttpServlet.java:733) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) Root Cause
      java.lang.NullPointerException org.apache.jsp.listaTarefas_jsp._jspService(listaTarefas_jsp.java:126) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71) javax.servlet.http.HttpServlet.service(HttpServlet.java:733) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:467) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:378) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:326) javax.servlet.http.HttpServlet.service(HttpServlet.java:733) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) Note A pilha de erros completa da causa principal está disponível nos logs do servidor.
       
       
      esse é o Medoto
       
      // Listar tarefa
              protected void tarefas(HttpServletRequest request, HttpServletResponse response)
                      throws ServletException, IOException {
                  //Criando um objeto que irá receber os dados do JavaBeans
                  ArrayList<JavaBeans> lista = dao.listarTarefa();
                  
                  request.setAttribute("tarefas", lista);
                  RequestDispatcher rd = request.getRequestDispatcher("listaTarefas.jsp");
                  rd.forward(request, response);
                  
                  //Teste de recebimento da lista
                  for(int i = 0; i<lista.size(); i++) {
                      System.out.println(lista.get(i).getIdcon());
                      System.out.println(lista.get(i).getTitulo());
                      System.out.println(lista.get(i).getDescricao());
                      System.out.println(lista.get(i).getData());
                      System.out.println(lista.get(i).getStatus());
                      System.out.println(lista.get(i).getPrioridade());
                  }
              }
          
    • By 4Unknow
      Boa tarde pessoal, como estão?
       
      Gostaria de uma ajudinha aqui. A forma mais prática e com um layout bacana, um pop-up toda vez(ou não) que o usuário abrir o site, um informativo que é importante.
      Tenho um site que vende algo muito específico e preciso deixar claro sobre meu produto como um informativo. Ou um banner/popup que abre quando o usuário entra no site para deixar claro.

      Ou um footer bonito que deixa claro essa informação.

      Se alguém tiver uma ideia ou puder ajudar, eu agradeceria.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.