1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Problemas com uso de metodos de Swing

Discussão em 'Programação' iniciada por Tiago Correia, 6 de Julho de 2008. (Respostas: 2; Visualizações: 880)

  1. 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[​IMG]
     
  2. PJTuga

    PJTuga Power Member

    a unica coisa que precisas fazer é
    acrescentar "extends JFrame"
    Código:
    public class SwingExemplo1 extends JFrame
     
  3. MadOnion

    MadOnion Folding Member

    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:
    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
     

Partilhar esta Página