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 ControlQuantidade 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 SwingQuantidade 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-versaQuantidade 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) 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 JavaQuantidade 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 |
|
C# - Como remover um elemento em uma determinada posição de uma List<T> do C# usando a função RemoveAt() PHP - Manipulação de texto em PHP - Como acessar e modificar os caracteres individuais de uma string |
Você também poderá gostar das dicas e truques de programação abaixo |
|
LISP - Como converter Coordenadas Polares para Coordenadas Cartesianas em LISP - LISP para Engenharia |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







