Divuda..!

2 respostas
E

Olhei uma passagem de código em um programa mas não entendi,
primeiramente irei deixar a classe para que vocês possam me ajudar…!

import java.awt.FlowLayout; // especifica como os componentes são organizados
import javax.swing.JFrame; // fornece recursos básicos de janela
import javax.swing.JLabel; // exibe texto e imagens
import javax.swing.SwingConstants; // constantes comuns utilizadas com Swing
import javax.swing.Icon; // interface utilizada para manipular imagens
import javax.swing.ImageIcon; // carrega imagens

public class LabelFrame extends JFrame
{
   private JLabel label1; // JLabel apenas com texto               
   private JLabel label2; // JLabel construído com texto e ícone
   private JLabel label3; // JLabel com texto e ícone adicionados     

   // construtor LabelFrame adiciona JLabels a JFrame
   public LabelFrame()
   {
      super( "Testing JLabel" );
      setLayout( new FlowLayout() ); // configura o layout de frame

      // Construtor JLabel com um argumento de string
      label1 = new JLabel( "Label with text" );   
      label1.setToolTipText( "This is label1" );  
      add( label1 ); // adiciona o label1 ao JFrame

      // construtor JLabel com string, Icon e argumentos de alinhamento  
      Icon bug = new ImageIcon( getClass().getResource(  "bug1.gif" ) );
      label2 = new JLabel( "Label with text and icon", bug,             
         SwingConstants.LEFT );                                         
      label2.setToolTipText( "This is label2" );                        
      add( label2 ); // adiciona label2 ao JFrame

      label3 = new JLabel(); // Construtor JLabel sem argumentos
      label3.setText( "Label with icon and text at bottom" );   
      label3.setIcon( bug ); // adiciona o ícone ao JLabel             
      label3.setHorizontalTextPosition( SwingConstants.CENTER );
      label3.setVerticalTextPosition( SwingConstants.BOTTOM );  
      label3.setToolTipText( "This is label3" );                
      add( label3 ); // adiciona label3 ao JFrame
   } // fim do construtor LabelFrame
} // fim da classe LabelFrame

O QUE SIGNIFICA ISSO super( “Testing JLabel” ); ??
esse super é o que…??
pra onde ele está passando o argumento Testing JLabel???

2 Respostas

J

super() é o construtor da superclasse, você está chamando o construtor da classe JFrame passando essa String aí como parametro...

Esse super quase sempre aparece em um construtor (exceto nas vezes em que no lugar de super() é usado this()), porque na primeira linha de um construtor sempre tem que ter uma chamada a outro construtor, essa chamada é feita com super() ou this(), e em algum construtor da classe (ao menos 1) tem que ter um super()... só que como o compilador é um cara bem legal, se você não colocar nenhum ele vai lá e coloca pra você, mas o que ele coloca só funciona quando a superclasse tem um construtor que nao recebe parametros, se não, não compila... então é muito importante que você entenda como isso funciona, porque em nem todos os casos o compilador vai conseguir te ajudar...

veja um exemplo onde o compilador não consegue te ajudar:

public class Pessoa{
   private String nome;

   public Pessoa(String nome){
      this.nome = nome;
   }
}

public class PessoaFisica extends Pessoa{

}

public class PessoaJuridica extends Pessoa{
   private String cnpj;
   public PessoaJuridica(String cnpj){
      this.cnpj = cnpj;
   }
}

Nenhuma das duas classes (PessoaFisica e PessoaJuridica) compilam, porque ao tentar colocar um super() na primeira linha dos construtores delas, o compilador vê que a classe Pessoa não tem um construtor sem parametros, então você mesmo tem que chamar o super()...

E

Entedi …!
Valew jair…!

Criado 21 de setembro de 2006
Ultima resposta 22 de set. de 2006
Respostas 2
Participantes 2