Duvida

Tenho uma class preciso colocar nessa classe uma GUI, mas para isso preciso que tudo esteja dentro de um metodo dessa classe, ou seja, o GUI e um metodo, mas esta ocorrendo erro de compilacao que nao consegue saber se o metodo que eu criei e uma classe ou uma interface, lembrando que criei tudo globalmente, o frame, buttons e apenas implementos os detalhes e chamo eles no metodo. Podem me dar uma ideia de como fazer isso, lembrando que o Gui tem que estar em um metodo nao posso criar uma classe para ele pois para o que estou desenvolvendo nao e permitido outra classe. :wink:

nossa, nao entendi nada!!! coloca o codigo aí (ou pelo menos a estrutura dele) e o erro q ta dando.


public class Teste extends StationaryAgent {

 
    JFrame gui = new JFrame();
  JLabel jLabel1 = new JLabel("Digite o nome do canal:");
  JButton jButtonMenu = new JButton();
   JTextField TxtCanal = new JTextField();
  JLabel LbResposta = new JLabel();
  JLabel n_canal = new JLabel();
  String x;

 
  public Teste(){
    ...  
  }
  
  public static void main (String[] args) {

   ...
    Tela();
  }

  public void run () { 
       
         
    ...  }
  
  public ITuple busca_canal (){
   ...  }

}

public void Tela () {

     gui.setSize(300, 300);
    gui.setTitle("TV Digital");
    gui.setVisible(true);

        
  jLabel1.setBounds(new Rectangle(50, 40, 200, 15));
     jLabel1.setForeground(Color.blue);
    TxtCanal.setText("");
    TxtCanal.setBounds(new Rectangle(50, 60, 200, 15));
    TxtCanal.addFocusListener(new Tela_TxtCanal_focusAdapter(this));
    LbResposta.setBounds(new Rectangle(50, 80, 200, 15));
    LbResposta.setForeground(Color.red);

    gui.getContentPane().setLayout(null);
    jButtonMenu.setBackground(Color.gray);
    jButtonMenu.setBounds(new Rectangle(20, 200, 80, 25));
    jButtonMenu.setText("Busca");
    jButtonMenu.addActionListener(this);
    gui.getContentPane().setBackground(new Color(74, 149, 149));
    gui.setForeground(new Color(88, 171, 171));
    gui.setTitle("");
    gui.getContentPane().add(jButtonMenu, null);
    gui.getContentPane().add(TxtCanal, null);
    gui.getContentPane().add(jLabel1, null);
    gui.getContentPane().add(LbResposta, null);

}
  
  
 public void actionPerformed(ActionEvent e) {
                       ...	
  }
}

O erro de compilacao e que o compilador nao entende se o metodo tela e uma classe ou uma interface

o metodo Tela() ta fora da classe!! isso vai dar erro de compilacao mesmo…

vc precisa coloca-lo dentro da classe ou criar uma outra classe para conte-lo. eh um principio fundamental: nao existem metodos fora de classes!! (ou fora de interfaces - definicoes de metodos)

uma sugestão…

quando criar um tópico coloque algo com sentido no assunto para facilitar a busca depois. Tudo que se tem no fórum são dúvidas :slight_smile:

Erro do codigo agora:

Teste.java:128: addFocusListener(java.awt.event.FocusListener) in java.awt.Compo
nent cannot be applied to (Teste)
TxtCanal.addFocusListener(this);
^
Teste.java:136: addActionListener(java.awt.event.ActionListener) in javax.swing.
AbstractButton cannot be applied to (Teste)
jButtonMenu.addActionListener(this);
^
2 errors

Bom desculpe se as perguntas podem parecer imbecil, mas e que nao tenho dominio da linguagem e ninguem que possa me ajudar, assim estou recorrendo a vcs![/code]

Eldrey, o problema é que você está fazendo isso:

    jButtonMenu.addActionListener(this); 

O Método addActionListener recebe como parâmetro um objeto de qualquer classe que implementa a interface java.awt.event.ActionListener. Assim ou a classe Teste ou uma se suas superclasses deve implementá-la.

A mesma coisa vale para a classe Tela_TxtCanal_focusAdapter, que deverá implementar a java.awt.event.FocusListener.

Detalhe, o código não está compatível com a mensagem de erro já que em nenhum lugar existe
o trecho

  TxtCanal.addFocusListener(this); 

Mesmo assim, acho que deu para sacar a idéia… :wink: