Variavel visivel em outras classe

8 respostas
J

Ola…

Alguem sabe como faço para alterar o valor de uma variavel que esta declarada em outra classe.

Tentei assim

NomeClasse novo = new NomeClasse();

novo.variavel = 10;

Mas quando eu retorno para a classe onde ela foi declarada vejo que ela não foi alterada/esta como null;

Alguem pode me dizer o porque e como faço para que isso nao aconteça?

valew

8 Respostas

rsakurai

testa isso:

NomeClasse novo = new NomeClasse();
novo.variavel = 10; 
System.out.println(novo.variavel);
J

pois é… é como cite,
funciona somente na classe onde estou passando o valor, mais quando eu retorno a classe onde eu a declarei vejo que o valor não foi alterado:

rsakurai

vc pode postar o codigo todo aqui?

Marky.Vasconcelos

Isso provavelmente um erro de implementação, posta o código completo para vermos melhor.

J
import java.awt.Frame;

import java.text.ParseException;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.JMenuItem;

import javax.swing.JMenuBar;

import javax.swing.JFrame;

import javax.swing.JMenu;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;
public class Exemplo2 extends JFrame {

//------------------------- SÃO ESSAS VARIAVEIS QUE ERRO ALTERRAR ATRAVÉS DA CLASSE ABAIXO

public int pos=0;

public String Dados[][]=new String[30][6]; //lin col
public Exemplo2() {        
    setSize(600,480);
    CriarInterface();
    
}

private void CriarInterface() {
    
    //cria o menu        
    JMenu cadMenu = new JMenu("Cadastro");
    cadMenu.setMnemonic('C');

    JMenuItem mnuNovo = new JMenuItem("Entrada de Veiculos");
    mnuNovo.setMnemonic('N');
    cadMenu.add(mnuNovo);        
    mnuNovo.addActionListener(
            new ActionListener()
            {
                public void actionPerformed(ActionEvent event)
                {                        
            try {
                Frame ent = new int_Entrada();
                ent.setResizable(false);
                ent.setLocationRelativeTo(null);
                ent.show();
            } catch (ParseException ex) {
                Logger.getLogger(int_Inicio.class.getName()).log(Level.SEVERE, null, ex);
            }
                }
            });       
    
    cadMenu.addSeparator();        
    JMenuItem mnuSair = new JMenuItem("Sair");
    mnuSair.setMnemonic('S');
    cadMenu.add(mnuSair);
    
    mnuSair.addActionListener(
            new ActionListener()
            {
                public void actionPerformed(ActionEvent event)                    
                {
                    System.exit(0); //sai do sistema
                }
            
            });
    
    JMenuBar menuBar = new JMenuBar();
    menuBar.add(cadMenu);
    setJMenuBar(menuBar);  
    
    
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);            

}

}

// NOVA CLASSE

import java.awt.Container;

import java.awt.FlowLayout;

import java.awt.Insets;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.text.ParseException;

import javax.swing.BorderFactory;

import javax.swing.ButtonGroup;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JFormattedTextField;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JRadioButton;

import javax.swing.JSeparator;

import javax.swing.JTextField;

import javax.swing.border.Border;

import javax.swing.text.MaskFormatter;
public class Exemplo3 extends Exemplo2 implements ActionListener{

private JSeparator Separador1, Separador2, Separador3, Separador4;

private JTextField tTicket, tPlaca, tCor ;

private JLabel lTipo, lTicket, lPlaca, lCor, lModelo, lData, lHora;

private JComboBox cbModelo;

private JRadioButton rbAvulso, rbDiarista, rbMoto, rbCarro, rbCaminhao;

private JButton b_Salvar, cNovaEntrada, b_Fechar;

private JFormattedTextField tData, tHora;
static String Avulso = "Avulso";
static String Diarista = "Diarista";
static String Moto = "Moto";
static String Carro = "Carro";
static String Caminhao = "Caminhao";

public String Modelo[] = {"Astra", "Gol", "Fusca", "Uno"};

private Border TituloPainel;

public Exemplo3() throws ParseException {
    //super("Entrada de Veiculos");
    setSize(500,250);
    Criar_Interface();
    
    b_Salvar.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            b_SalvarClick();
        }

        private void b_SalvarClick() {                                
            Salvar();
            
        }
    });
    
    b_Fechar.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            b_FecharClick();
        }

        private void b_FecharClick() {
            setVisible(false);
        }
    });


}

private void Criar_Interface() throws ParseException {
    int Lin, Col;
    Lin = 0;
    Col = 0;

    Container cp = getContentPane();        

    JPanel p1 = new JPanel( new FlowLayout(FlowLayout.LEFT));
    JPanel p2 = new JPanel( new FlowLayout(FlowLayout.LEFT));
    p2.setLayout(null);
    JPanel p3 = new JPanel( new FlowLayout(FlowLayout.RIGHT));

    p1.setBorder(BorderFactory.createTitledBorder("Tipo do cliente") );
    p2.setBorder(BorderFactory.createTitledBorder("") );
    p3.setBorder(BorderFactory.createTitledBorder("") );

    p1.add(rbAvulso=new JRadioButton(Avulso));
    rbAvulso.setActionCommand(Avulso);
    p1.add(rbDiarista=new JRadioButton(Diarista));
    rbDiarista.setActionCommand(Diarista);
    p1.add(rbMoto=new JRadioButton(Moto));
    rbMoto.setActionCommand(Moto);
    p1.add(rbCarro=new JRadioButton(Carro));
    rbCarro.setActionCommand(Carro);
    p1.add(rbCaminhao=new JRadioButton(Caminhao));
    rbCaminhao.setActionCommand(Caminhao);
    ButtonGroup grupoTipo = new ButtonGroup();
    grupoTipo.add(rbAvulso);
    grupoTipo.add(rbDiarista);
    grupoTipo.add(rbMoto);
    grupoTipo.add(rbCarro);
    grupoTipo.add(rbCaminhao);
    cp.add("North", p1);

    MaskFormatter mfcep = new MaskFormatter("##.###-###");

    p2.add(lTicket = new JLabel("Ticket"));
    p2.add(tTicket = new JTextField(5));
    p2.add(lPlaca = new JLabel("  Placa"));
    p2.add(tPlaca = new JTextField(8));
    p2.add(lModelo = new JLabel("  Modelo"));
    p2.add(cbModelo = new JComboBox(Modelo));
    cbModelo.setMaximumRowCount( 3 );
    cbModelo.setEditable(true);
    p2.add(lCor = new JLabel("  Cor"));
    p2.add(tCor = new JTextField(10));
    p2.add(lData = new JLabel("Data"));        
    p2.add(tData = new JFormattedTextField(new MaskFormatter("##/##/####")));
    p2.add(lHora = new JLabel("Hora"));        
    p2.add(tHora = new JFormattedTextField(new MaskFormatter("##:##")));        
    
    
    Insets insets = p2.getInsets();
    lTicket.setBounds(Col + 8 + insets.left, Lin+10 + insets.top, 85, 20);
    tTicket.setBounds(Col + 7 + insets.left, Lin+30 + insets.top, 85, 20);
    lPlaca.setBounds(Col + 118 + insets.left, Lin+10 + insets.top, 85, 20);
    tPlaca.setBounds(Col + 117 + insets.left, Lin+30 + insets.top, 85, 20);
    lModelo.setBounds(Col + 228 + insets.left, Lin+10 + insets.top, 105, 20);
    cbModelo.setBounds(Col + 227 + insets.left, Lin+30 + insets.top, 105, 20);
    lCor.setBounds(Col + 358 + insets.left, Lin+10 + insets.top, 105, 20);
    tCor.setBounds(Col + 357 + insets.left, Lin+30 + insets.top, 105, 20);
    lData.setBounds(Col +9 + insets.left, Lin+60 + insets.top, 105, 20);
    tData.setBounds(Col + 7 + insets.left, Lin+80 + insets.top, 105, 20);
    lHora.setBounds(Col +139 + insets.left, Lin+60 + insets.top, 105, 20);
    tHora.setBounds(Col + 137 + insets.left, Lin+80 + insets.top, 105, 20);        

    cp.add("Center", p2);

    p3.add(cNovaEntrada = new JButton("Nova Entrada"));
    p3.add(b_Salvar = new JButton("Salvar"));
    p3.add(b_Fechar = new JButton("Fechar"));
    cp.add("South", p3);

}
//----------------------- ESTOU ALTERANDO OS VALORS DAQUELA MATRIZ AQUI
public void Salvar() {
    Dados[pos][0] = "0000";
    Dados[pos][1] = tTicket.getText();
    Dados[pos][2] = tPlaca.getText();
    Dados[pos][3] = (String) cbModelo.getSelectedItem();
    Dados[pos][4] = tCor.getText();
    Dados[pos][5] = tData.getText();
    Dados[pos][6] = tHora.getText();
}


public void actionPerformed(ActionEvent e) {
    throw new UnsupportedOperationException("Not supported yet.");
}

}

M

jork:
pois é… é como cite,
funciona somente na classe onde estou passando o valor, mais quando eu retorno a classe onde eu a declarei vejo que o valor não foi alterado:

acho que o problema é que vc esta atribuindo o valor a uma instancia da classe e tentando ler o valor de uma outra instancia, dai o problema

J

saberias me sugerir o que fazer para eu poder resolver esse problema?

M

se a variavel for a mesma para qualquer instancia da class, declare ela como static

public static String variavel

Criado 28 de maio de 2008
Ultima resposta 29 de mai. de 2008
Respostas 8
Participantes 4