Problemas com uso de metodos de Swing

Ola Pessoal

Tou a fazer a primeira vez um programa que usa swing, contudo o programa não reconhece nenhum dos metodos que uso da classe swing. Fiz os imports que necessitava da classe swing. Qual poderá ser a razão do problema?

por exemplo, experimentando o exemplo de um tutorial de swing

Código:
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.*;
 
public class SwingExemplo1 {
 JPanel panel;
    JLabel msg;
 
    public SwingExemplo1()
     {
         super("Java!");
     }
 
     public void criaJanela()
     {        
         panel = new JPanel();
         msg = new JLabel("GUJ.com.br");
 
         panel.add(msg);
 
         getContentPane().add(panel, BorderLayout.CENTER);
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
         pack();
         setVisible(true);
     }
 
 
    public static void main(String[] args) {
      SwingExemplo1 s = new SwingExemplo1();
         s.criaJanela();
    }
}

obtenho erros nos metodos: setVisible(true), pack(), setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE), getContentPane().add(panel, BorderLayout.CENTER), e por fim super("Java!"), com o erro: "Object() in java.lang.Object cannot be applied to (java.lang.String)
super("Java!")"

O que poderá ser? o que poderei fazer?
Obrigado pela vossa atenção
283a16da79f3aa23fe1025c96295f04f.gif
 
a unica coisa que precisas fazer é
acrescentar "extends JFrame"
Código:
public class SwingExemplo1 extends JFrame

A razão do extends(keyword para herança) é muito simples.
Se reparares os metodos que usas não estão a ser invocados sobre nenhum objecto, por exemplo, o metodo pack() está a ser chamado de pack() e não de a.pack() por exemplo, o que leva a acreditar que esse metodo vem de uma superclass(ver herança em java).
No construtor dessa classe, vêm o seguinte:
super("Java!");
Esta keyword é usada para referir à classe pai(superclass), no caso o metodo construtor. Em java, todas as classes extendem o Object, excepto se fores mais explicito.
Os erros que o compilador lança são simples, ele está a associar esses metodos que não são chamados sobre nenhum objecto, à classe Object. Ora a classe Object não tem esses metodos, gerando erros em tempo de compilação.

Cumps
 
Back
Topo