Caption do JLabel

10 respostas
O

olá galera estou iniciando no java com uma aplicação pequena fiz uma classe de eventos de um Jlabel e quando eu clicko no Jlabel eu quero mudar o caption dele .

na classe da interface eu ja criei os Get e os Sets porem dentro da classe de eventos eu nao consigo acessar eles para mudar o titulo do Jlabel . Como posso fazer estou com a estrutura de projeto errada ?

10 Respostas

marcioa1

É um projeto Swing, não é ?

Tem algum evento associado ao JLabel ? Crie um evento do mouse e trate lá dentro.

Marcio

O

marcioa1:
É um projeto Swing, não é ?

Tem algum evento associado ao JLabel ? Crie um evento do mouse e trate lá dentro.

Marcio

CARA JA TEM OS EVENTOS ASSOCIADOS A ELE O PROBLEMA É QUE DENTRO DA CLASSE DE EVENTOS EU NAO CONSIGO ACESSAR OS GETS E SETS DA CLASSE DE INTERFACE COMO POSSO FAZER ?

RenataFA

Bom, comece respeitando as leis do forum e não usando letras maiúsculas nas suas perguntas…

Qto a sua dúvida, normalmente qdo crio a classe Listener passo pra ela como parâmetro a classe de interface. Desta forma, de dentro da classe Listener eu posso acessar qq coisa que esteja como public dentro da classe interface.

O

Bom, comece respeitando as leis do forum e não usando letras maiúsculas nas suas perguntas…

Qto a sua dúvida, normalmente qdo crio a classe Listener passo pra ela como parâmetro a classe de interface. Desta forma, de dentro da classe Listener eu posso acessar qq coisa que esteja como public dentro da classe interface.

mas como passo a classe de interface como parametro ?

RenataFA

Um exemplo...

Sua classe da tela:

public class Tela extends javax.swing.JInternalFrame {
    public TelaActionListener actionListener;

    public Tela(){
        actionListener = new TelaActionListener(this); // estou passando esta classe por parâmetro
        ...
    }

    public int getValor(){
        return 0;
    }
}

Na sua classe listener:

public class TelaActionListener implements ActionListener{

    Tela tela;

    public TelaActionListener(Tela tela){ // recebo a tela como parâmetro
        this.tela = tela;
    }

    public void meuMetodo(){
        int x = tela.getValor(); // estou usando o get que está na tela
    }       
}
O
RenataFA:
Um exemplo...

Sua classe da tela:

public class Tela extends javax.swing.JInternalFrame {
    public TelaActionListener actionListener;

    public Tela(){
        actionListener = new TelaActionListener(this); // estou passando esta classe por parâmetro
        ...
    }

    public int getValor(){
        return 0;
    }
}

Na sua classe listener:

public class TelaActionListener implements ActionListener{

    Tela tela;

    public TelaActionListener(Tela tela){ // recebo a tela como parâmetro
        this.tela = tela;
    }

    public void meuMetodo(){
        int x = tela.getValor(); // estou usando o get que está na tela
    }       
}

certo mais no evento estou fazendo assim tela.setlbl1("meu caption") ai esta dando pau

RenataFA

Evento?! Que evento? O que é evento pra vc?!

"está dando pau" -> que pau? Qual o erro? É um erro de compilação? É um erro de execução? É uma exception?

Seja mais específico, senão fica impossível de ajudarmos…

O

Estou no MouseClicked de uma JLabel e preciso Setar o texto dela.

Como Posso Fazer Isso???

Melhor Dizendo eu tenho uma classe com JLabel e tenho outra Classe com os “Eventos” (o Click do JLabel) , gostaria que quando eu click na JLabel ele jogue um Valor Texto para essa JLabel, mas não estou conseguindo jogar o Valor da Classe de “Eventos”. Como posso fazer isso???

Marky.Vasconcelos

Exemplo completo:

class Janela extends JFrame{
public JLabel label1;
   public Janela(){
      label1 = new JLabel("Texto Antigo");
      getContentPane().add(label1);
      label1.addMouseListener(new MyMouseListener(this));
      setVisible(true);
      pack();
   }
   public static void main(String...args){
     new Janela();
   }
}

public class MyMouseListener extends MouseAdapter{
   private Janela janela;
   public MyMouseListener(Janela j){ janela = j;}

   @Override
   public void mouseClicked(MouseEvent event){
      if(event.getSource() == janela.label1)
         label1.setText("Texto Novo");
   }
}
O
Mark_Ameba:
Exemplo completo:
class Janela extends JFrame{
public JLabel label1;
   public Janela(){
      label1 = new JLabel("Texto Antigo");
      getContentPane().add(label1);
      label1.addMouseListener(new MyMouseListener(this));
      setVisible(true);
      pack();
   }
   public static void main(String...args){
     new Janela();
   }
}

public class MyMouseListener extends MouseAdapter{
   private Janela janela;
   public MyMouseListener(Janela j){ janela = j;}

   @Override
   public void mouseClicked(MouseEvent event){
      if(event.getSource() == janela.label1)
         label1.setText("Texto Novo");
   }
}

vlew deu certo muito obrigado ..

Criado 1 de fevereiro de 2008
Ultima resposta 5 de fev. de 2008
Respostas 10
Participantes 4