Você está aqui: Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais

Java Reflection - Como exibir os nomes de todas as superclasses de uma determinada classe usando introspecção em Java

Quantidade de visualizações: 7817 vezes
Nesta dica veremos como tirar proveito dos métodos getClass(), getName() e getSuperclass() da classe Class da linguagem Java para exibirmos todas as super classes de um determinada classe, até chegarmos à super classe mais alta na hierarquia, ou seja, a classe Object.

Note como usamos um objeto da classe Stack para criarmos uma estrutura de dados do tipo pilha que nos permite obter os nomes das super classes e depois exibir os mesmos na ordem inversa.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

import java.util.Stack;
import javax.swing.*;
 
public class Estudos{
  // vamos precisar de uma pilha aqui
  static Stack<String> pilha = new Stack();
    
  public static void main(String args[]){
    // Exibe todas as superclasses de JPanel
    JPanel panel = new JPanel();
    obterSuperclasses(panel);
 
    // agora vamos exibir os resultados na ordem
    // contrária que eles foram obtidos
    int cont = 0;
    while(pilha.size() > 0){
      // insere espaços antes
      String ident = "";
      for(int i = 0; i < cont; i++){
        ident = ident + "   ";   
      }
        
      System.out.println(ident + pilha.pop());
      cont++;
    }
    
    System.exit(0);
  }
 
  static void obterSuperclasses(Object obj){
    // vamos adicionar este valor na pilha
    pilha.push(obj.getClass().getName());
      
    Class cls = obj.getClass();
    Class superclass = cls.getSuperclass();
    while(superclass != null){
      String className = superclass.getName();
      
      // vamos adicionar este valor na pilha
      pilha.push(className);
      
      cls = superclass;
      superclass = cls.getSuperclass();
    }
  }
} 

Ao executarmos este código Java nós teremos o seguinte resultado:

java.lang.Object
   java.awt.Component
      java.awt.Container
         javax.swing.JComponent
            javax.swing.JPanel


Link para compartilhar na Internet ou com seus amigos:

Java ::: Dicas & Truques ::: Strings e Caracteres

Como testar se duas strings são iguais em Java sem considerar letras maiúsculas e minúsculas usando o método equalsIgnoreCase()

Quantidade de visualizações: 77 vezes
Nesta dica mostrarei como podemos usar o método equalsIgnoreCase() da classe String da linguagem Java para verificar se duas palavras, frases ou textos são iguais desconsiderando letras maiúsculas e minúsculas.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

public class Estudos{
  public static void main(String[] args){
    String s1 = "GOSTO de Java";
    String s2 = "gosto de java";
    
    System.out.println("A primeira string é: " + s1);
    System.out.println("A segunda string é: " + s2);
    
    if(s1.equalsIgnoreCase(s2)){
      System.out.println("As duas strings sao iguais");
    }
    else{
      System.out.println("As duas strings não sao iguais");
    }
      
    System.exit(0);
  }
} 

Ao executar este código Java nós teremos o seguinte resultado:

A primeira string é: GOSTO de Java
A segunda string é: gosto de java
As duas strings são iguais


Java ::: Fundamentos da Linguagem ::: Estruturas de Controle

Tutorial Java para iniciantes - Como usar o laço for em Java

Quantidade de visualizações: 21180 vezes
O laço for (loop for, ou laço para) é de longe uma das estruturas de controle mais usadas, não só em Java como em várias linguagens de programação). A razão de seu sucesso é a facilidade com que podemos efetuar iterações controladas por um contador ou uma variável similar, que é atualizada a cada iteração. Veja sua sintáxe:

for(passo 1; passo 2; passo 3){
  // bloco de instruções
}


passo 1: É aqui que definimos a variável de controle. Esta variável pode também ser declarada antes do laço, mas nunca em seu corpo.

passo 2: Aqui testamos a condição de continuidade do laço. Se a condição retornar verdadeira, a execução do laço continua. Do contrário esta é interrompida.

passo 2: Nesta parte nós incrementamos ou decrementamos a variável de controle.

É importante perceber que podemos ter mais de uma instruções nos passos 1 e 3 de uma laço for, basta separá-las por vírgulas.

Veja um exemplo no qual usamos um laço for para imprimir os números de 0 a 10:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public class Estudos{
  public static void main(String[] args){
    for(int i = 0; i <= 10; i++){
      System.out.println(i);
    }
  }
}

Veja agora como efetuar a operação inversa, ou seja, imprimir os números em ordem decrescente:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public class Estudos{
  public static void main(String[] args) {
    for(int i = 10; i >= 0; i--){
      System.out.println(i);
    }
  }
}

Para finalizar veja como podemos imprimir os números pares de 0 a 10:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public class Estudos{
  public static void main(String[] args) {
    for(int i = 0; i <= 10; i += 2){
      System.out.println(i);
    }
  }
}



Java ::: Dicas & Truques ::: Imagens e Processamento de Imagens

Manipulação de imagens em Java - Como converter uma imagem JPG colorida para uma imagem na escala cinza (gray scale)

Quantidade de visualizações: 11994 vezes
Uma das formas mais comuns de se converter uma imagem colorida para uma imagem na escala cinza (grayscale) é desenhar a imagem colorida em um BufferedImage do tipo TYPE_BYTE_GRAY. Veja o resultado na imagem abaixo:



E agora o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

import java.awt.*;
import java.io.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.swing.*;
import javax.imageio.*;
 
public class Estudos extends JFrame{
  private BufferedImage imagem;
  private BufferedImage imagemCinza;
  AreaImagem areaImagem;  
 
  public Estudos(){
    super("Estudos Java");
     
    Container c = getContentPane();
    c.setLayout(new BorderLayout());
     
    JButton btn = new JButton("Carregar Imagem");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          JFileChooser fc = new JFileChooser();
 
          int res = fc.showOpenDialog(null);
          if(res == JFileChooser.APPROVE_OPTION){
        File arquivo = fc.getSelectedFile();  
           
            imagem = null;
           
            try{
              imagem = ImageIO.read(arquivo);
            }
            catch(IOException exc){
              JOptionPane.showMessageDialog(null, 
                "Erro ao carregar a imagem: " + 
                exc.getMessage());
            }
 
            if(imagem != null){
              areaImagem.imagem = imagem;
              areaImagem.repaint();  
            }
          }
        }
      }
    );
 
    JButton btn2 = 
      new JButton("Converter Escala Cinza");
    btn2.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          converterEscalaCinza();
        }
      }
    );
 
    JPanel painel = new JPanel();
    painel.setLayout(new FlowLayout());    
    painel.add(btn);
    painel.add(btn2);
 
    c.add(painel, BorderLayout.SOUTH);
     
    // Cria a área de exibição da imagem
    areaImagem = new AreaImagem();
    c.add(areaImagem, BorderLayout.CENTER);    
     
    setSize(400, 300);
    setVisible(true);
  }
 
  public void converterEscalaCinza(){
    imagemCinza = new BufferedImage(
      imagem.getWidth(), imagem.getHeight(), 
      BufferedImage.TYPE_BYTE_GRAY);
    Graphics g = imagemCinza.getGraphics();
    g.drawImage(imagem, 0, 0, null);
    g.dispose();
    areaImagem.imagem = imagemCinza;
    areaImagem.repaint();
  }
   
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}
 
// Sub-classe de JPanel para exibir a imagem
class AreaImagem extends JPanel{
  public BufferedImage imagem;
 
  public void paintComponent(Graphics g){ 
    super.paintComponent(g);
     
    // desenha a imagem no JPanel
    g.drawImage(imagem, 0, 0, this);
  } 
}



Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

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



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