Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD e VBA
PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

C# ::: Dicas & Truques ::: Validação de Dados

C# Windows Forms - Como validar o conteúdo de uma caixa de texto usando o evento Validating da classe Control

Quantidade de visualizações: 18062 vezes
O evento Validating (disponível para todas as classes que herdam de System.Windows.Forms.Control) é muito útil quando precisamos verificar a validade dos valores inseridos nos controle Windows Forms. Neste exemplo mostrarei como usá-lo para validar o conteúdo de um TextBox. Aqui veremos como verificar se o conteúdo inserido é um valor inteiro válido.

Tudo começa com a propriedade CausesValidation da classe Control. Esta propriedade nos permite definir se o controle provocará uma validação de seus dados quando o mesmo estiver prestes a perder o foco, ou seja, o usuário começara a interagir com outro controle após inserir dados no controle alvo da validação. Se o valor desta propriedade for true a validação ocorrerá.

Em seguida voltamos nossa atenção para o evento Validating (também declarado originalmente na classe Control). Este evento é disparado quando a propriedade CausesValidation é true e o controle está prestes a perder o foco (o usuário está saindo para interagir com outro controle). Veja a ordem dos eventos quando estamos saindo do controle usando o teclado:

a) Leave
b) Validating
c) Validated
d) LostFocus

Se estivermos saindo do controle usando o mouse (clicando em outro controle), a ordem é:

a) Leave
b) Validating
c) Validated

Veja um exemplo do uso do evento Validating de um TextBox:

private void textBox1_Validating(object sender, CancelEventArgs e){
  MessageBox.Show("Meu conteúdo pode ser validado agora");
}

Experimente executar este código, coloque o foco na caixa de texto e depois "saia" para outro componente. Você verá a caixa de mensagem ser exibida.

O tratador de evento Validating recebe um objeto da classe CancelEventArgs. Esta classe possui apenas uma propriedade chamada Cancel. Se o valor desta propriedade for definido como true, o evento Validating (e todos que viriam após ele) é cancelado. Isso faz com que o foco fique preso no controle até que o usuário informe o valor correto. Veja:

private void textBox1_Validating(object sender, CancelEventArgs e){
  // vamos verificar se a caixa de texto contém um valor inteiro válido
  try{
    // vamos tentar converter o texto recebido em um valor inteiro
    int valor = Int32.Parse(textBox1.Text);
    MessageBox.Show("Validação ocorreu com sucesso!");
  }
  catch(FormatException fe){
    // não conseguimos converter o texto em um valor inteiro
    MessageBox.Show("Valor inválido! Tente novamente! " +
      fe.Message.ToString());
    // limpamos a caixa de texto
    textBox1.Text = "";
    // e "prendemos" o foco na caixa de texto
    e.Cancel = true;
  }
}

Neste trecho de código nós usamos um bloco try...catch para tentar converter o texto do TextBox em um valor inteiro. Se houver falha na conversão nós avisamos o usuário, limpamos a caixa de texto e forçamos o usuário a fazer a correção.

Para finalizar, entra em cena o evento Validated. Este evento é disparado imediatamente após o evento Validating finalizar sua parte e é um bom lugar para avisarmos o usuário sobre o sucesso da validação ou remover quaisquer efeito visual que tenhamos inserido durante o processo de validação. Veja:

private void textBox1_Validating(object sender, CancelEventArgs e){
  // vamos verificar se a caixa de texto contém um valor inteiro válido
  try{
    // vamos tentar converter o texto recebido em um valor inteiro
    int valor = Int32.Parse(textBox1.Text);
  }
  catch(FormatException fe){
    // não conseguimos converter o texto em um valor inteiro
    MessageBox.Show("Valor inválido! Tente novamente! " +
      fe.Message.ToString());
    // limpamos a caixa de texto
    textBox1.Text = "";
    // e "prendemos" o foco na caixa de texto
    e.Cancel = true;
  }
}

private void textBox1_Validated(object sender, EventArgs e){
  MessageBox.Show("Validação ocorreu com sucesso!");
}

Veja que tudo que fizemos aqui foi remover a mensagem de sucesso de validação do evento Validating para o evento Validated.


Java ::: Dicas & Truques ::: Formulários e Janelas

Java Swing para iniciantes - Como criar seu primeiro aplicativo de interface gráfica em Java Swing

Quantidade de visualizações: 80931 vezes
Um aplicativo de interface gráfica em Java é criado usando-se a classe JFrame, do Java Swing. Objetos desta classe servem como containeres para outros componentes e são as janelas principais dos aplicativos, com título e botões para redimensionar, minimizar, maximizar e fechar.

Veja um exemplo de um simples aplicativo de interface gráfica em Java Swing:

package arquivodecodigos;

import javax.swing.*;
 
public class Estudos extends JFrame{
  public Estudos() {
    super("Minha primeira aplicação GUI");
    setSize(350, 250);
    setVisible(true);
  }
   
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

Este código gera uma janela principal de um aplicativo com 350 pixels de largura e 250 pixels de altura. O título da janela é: "Minha primeira aplicação GUI".

Veja o resultado na figura abaixo:




Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos

Exercícios Resolvidos de Java - Programação Orientada a Objetos - Uma classe Temperatura que converte graus Celsius em Fahrenheit e vice-versa

Quantidade de visualizações: 8587 vezes
Exercício Resolvido de Java - POO - Programação Orientada a Objetos - Uma classe Temperatura que converte graus Celsius em Fahrenheit e vice-versa

Pergunta/Tarefa:

Escreva uma classe Java chamada Temperatura que converterá graus Celsius em Fahrenheit e vice-versa. Esta classe não possuirá nenhuma variável, nem de instância nem de classe, somente dois métodos, que deverão ter as seguintes assinaturas:

double celsiusParaFahrenheit(double)
double fahrenheitParaCelsius(double)
Note que os dois métodos recebem um argumento do tipo double e retorna um valor double.

Para facilitar a resolução, seguem abaixo as regras de conversão:

Celsius para Fahrenheit: F = (1,8 x C) + 32
Fahrenheit para Celsius: C = (F - 32) / 1,8

Depois de escrever a classe Temperatura, use o método main() da classe principal da aplicação Java para testar suas funcionalides.

Sua saída deverá ser parecida com:



Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console:

Código para a classe Temperatura.java:

package arquivodecodigos;

public class Temperatura {
  // converte de Celsius para Fahrenheit
  public double celsiusParaFahrenheit(double c){
    double f = (1.8 * c) + 32;
    return f;  
  }
  
  // converte de Fahrenheit para Celsius
  public double fahrenheitParaCelsius(double f){
    double c = (f - 32) / 1.8;  
    return c;  
  }    
}

Código para a classe Principal.java:

package arquivodecodigos;

import java.util.Scanner;

public class Principal{ 
  public static void main(String args[]){ 
    // vamos criar um objeto da classe Temperatura
    Temperatura t = new Temperatura();
    
    // vamos fazer a leitura do usuário
    Scanner entrada = new Scanner(System.in);
    
    // primeiro de Celsius para Fahrenheit
    System.out.print("Informe o grau em Celsius: ");
    double celsius = Double.parseDouble(entrada.nextLine());
    System.out.println(celsius + " graus Celsius equivale a " +
      t.celsiusParaFahrenheit(celsius) + " graus Fahrenheit.");
    
    // agora de Fahrenheit para Celsius
    System.out.print("Informe o grau em Fahrenheit: ");
    double fahrenheit = Double.parseDouble(entrada.nextLine());
    System.out.println(celsius + " graus Fahrenheit equivale a " +
      t.fahrenheitParaCelsius(fahrenheit) + " graus Celsius.");
  } 
}



Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca

Estruturas de dados em Java - Como obter o nó com maior valor em uma árvore binária de busca usando Java

Quantidade de visualizações: 2762 vezes
Em exemplos dessa seção nós vimos como criar árvores binárias e árvores binárias de busca em Java e como pesquisar ou fazer a sua travessia, visitando cada um dos nós. Nesta dica mostrarei como obter o nó com o maior valor em uma árvore binária. O truque aqui é descer o lado direito da árvore até o último nó. Veja:

// método que permite retornar o maior nó de uma árvore
// binária de busca
public No retornarMaiorElemento(){
  // chama a versão recursiva do método
  return retornarMaiorElemento(raiz);
}
  
public No retornarMaiorElemento(No no){
  if((no == null) || (no.getDireito() == null)){
    return no; // ponto de parada
  }
  else{ // vamos continuar descendo do lado direito
    return retornarMaiorElemento(no.getDireito());
  }
}

Este método faz parte da classe ArvoreBinariaBusca.java. Veja agora como chamá-lo a partir da classe principal, ou seja, a classe de teste:

package arvore_binaria;

import java.util.Scanner;

public class ArvoreBinariaTeste {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);  
       
    // vamos criar um novo objeto da classe ArvoreBinariaBusca
    ArvoreBinariaBusca arvore = new ArvoreBinariaBusca();
    
    // vamos inserir 5 valores na árvore
    for(int i = 0; i < 5; i++){
      System.out.print("Informe um valor inteiro: ");
      int valor = Integer.parseInt(entrada.nextLine());
       
      // vamos inserir o nó e verificar o sucesso da operação
      if(!arvore.inserir(valor)){
        System.out.println("Não foi possível inserir." +
          " Um elemento já contém este valor.");  
      }
    }
     
    // vamos obter o maior elemento na árvore binária de busca
    System.out.println("\nO maior nó é: " + 
      arvore.retornarMaiorElemento().getValor());
     
    System.out.println("\n");
  }
}

Ao executar este código teremos o seguinte resultado:

Informe um valor inteiro: 6
Informe um valor inteiro: 13
Informe um valor inteiro: 64
Informe um valor inteiro: 21
Informe um valor inteiro: 3

O maior nó é: 64



Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby


E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser. Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 32,90

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.


© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 43 usuários muito felizes estudando em nosso site.