Ajuda Urgente Interface grafica

6 respostas
M

Boas.

Eu tenho um problema. Eu tenho várias classes mas quando numa tento invocar uma label de outra class da-me o erro do non-static variable.... ora entao eu pus as labels static, mas agora preciso de lhes mudar o texto e n da por causa de serem estáticas como é q eu faço?????

O código que eu tenho e o seguinte:

Class onde estão definidas as labels:
public class Delegacoes extends JFrame 
{

        JButton bcriarDelegacao = new JButton();
        JButton bcriarExemplos = new JButton();
        JButton beditarDelegacao = new JButton();
        JButton bremoverDelegacao = new JButton();
       
        static JLabel codigoIdentificacao = new JLabel();
        static JComboBox jComboBox1 = new JComboBox();
        JLabel jLabel1 = new JLabel();
        JLabel jLabel2 = new JLabel();
        JLabel jLabel3 = new JLabel();
        JLabel jLabel4 = new JLabel();
        JMenuBar jMenuBar1 = new JMenuBar();
        JPanel jPanel1 = new JPanel();
        static JLabel nomeDelegacao = new JLabel();
        static JLabel responsavel = new JLabel();
(...)
Class onde preciso de invocá-las:
public class InserirDelegacao extends JFrame 
{
(...)

private void bcriarActionPerformed(java.awt.event.ActionEvent evt) 
    {
      
        pt.JO.base.Delegacao del = new Delegacao(Nacionalidade, codigo, Responsavel);
        Inicio.jogos_O.addDelegacao(del);
        Delegacoes.jComboBox1.addItem(del);
        Delegacoes.codigoIdentificacao.setVisible(true);
        Delegacoes.codigoIdentificacao.setText(codigo);
        Delegacoes.nomeDelegacao.setVisible(true);
        Delegacoes.nomeDelegacao.setText(Nacionalidade);
        Delegacoes.responsavel.setVisible(true);
        Delegacoes.responsavel.setText(Responsavel);
(...)

Como é que eu posso solucionar isto???

Desde já agradeço qq ajuda

6 Respostas

jayrmotta

Bom parceiro … a grosso modo … se você quer invoca-la de fora da propria classe você retira aquele Static la das variaveis … e se as classes estiverem na mesma package acho que nao tem problema … porém … se quem gerou isso pra você foi alguma IDE não é uma pratica legal vc tirar esse static … existem outras soluções … pq isso pode desencadear outros erros e etc …

enfim … você vai chegar na solução ^^

boa sorte!

M

Gerei o código no netBeans e o problema e q tirando aquele static da o erro do non-static variable (…) cannot be referenced in static context.

E não tenho qq tipo de solução para isto…

jayrmotta

faz o que eu te disse ué … ranca aqueles static dali … vc deve ter dado essa propriedade pra eles …

tenta tirar os statics dos jLabel e ve no que da … tem que fazer os testes…

M

jayrmotta:
faz o que eu te disse ué … ranca aqueles static dali … vc deve ter dado essa propriedade pra eles …

tenta tirar os statics dos jLabel e ve no que da … tem que fazer os testes…

Ja experimentei… da erro… como disse no post anterior…

jayrmotta

Bom … me desculpa se estou interpretando mal … porém no bloco de código que você postou não mostra um “ambiente estático” porém eu presumi que funcionaria … mais se você esta invocando isso num ambiente estático como ex: “public void static main(String[] args) { }” ai sim vai dar erro porque você ta dizendo pro java pegar uma variável inconsistente a assinatura do método que vc ta usando …

M

Uma solução que eu encontrei foi:

criar um metodo na class onde estão definidas as labels, e na noutra class no actionperformed do botao incovar esse metodo:

mas diz que n consegue encontrar o método… n sei pk…

Criado 14 de junho de 2008
Ultima resposta 14 de jun. de 2008
Respostas 6
Participantes 2