Pessoal tenho o seguinte sisteminha desenvolvido com RMI:
public class Cliente extends JFrame implements ActionListener
{
// aqui fiz as declarações das variaveis, está ok
public static void main(String args [])
{
try
{
[b]CadAluno c1 = (CadAluno)Naming.lookup("//localhost/cad");[/b]
}
catch(Exception e) {
System.out.println("Ocorreu uma excecao: " +e);
}
JFrame janela = new Cliente();
janela.setUndecorated(false);
janela.setBounds(300,100,300,375);
janela.setResizable(false);
janela.show();
}
Cliente()
{
// Aqui ele cria normalmente a interface gráfica, tbm está ok.
}
public void actionPerformed(ActionEvent evt)
{
// Eventos do botao
//Cadastrar
if(evt.getSource()== bCadastra)
{
rgm = tRgm.getText()+"";
nome = tNome.getText()+"";
curso = tCurso.getText()+"";
idade = Integer.parseInt(tIdade.getText()+"");
campus = Integer.parseInt(tCampus.getText()+"");
[b]if(c1.setAluno(rgm,nome,curso,idade,campus))[/b] JOptionPane.showMessageDialog(null, "Aluno cadastrado com sucesso");
else
JOptionPane.showMessageDialog(null, "Falha ao cadastrar aluno ou RGM já existente no sistema");
}
}
}
NOTEM AS PARTES EM NEGRITO
O ERRO ESTÁ QUE ELE NÃO RECONHECE A VARIÁVEL c1,
cannot find symbol
symbol : variable c1
location: class Cliente
O problema é que ele soh dá esse erro depois que eu implemento o
throws RemoteException;
após os métodos nas outras classes.
Alguém conseguiria me ajudar?
Abraços
Está acontecendo porque vc está declarando c1 dentro de um bloco try e catch ou seja ele somente ficara visivel dentro desse try e catch o que vc deve fazer é tirar c1 dentro do bloco try/catch, ficando assim:
public class Cliente extends JFrame implements ActionListener
{
// aqui fiz as declarações das variaveis, está ok
public static void main(String args [])
{
CadAluno c1 = null;
try
{
c1 = (CadAluno)Naming.lookup("//localhost/cad");
}
catch(Exception e) {
System.out.println("Ocorreu uma excecao: " +e);
}
JFrame janela = new Cliente();
janela.setUndecorated(false);
janela.setBounds(300,100,300,375);
janela.setResizable(false);
janela.show();
}
Cliente()
{
// Aqui ele cria normalmente a interface gráfica, tbm está ok.
}
public void actionPerformed(ActionEvent evt)
{
// Eventos do botao
//Cadastrar
if(evt.getSource()== bCadastra)
{
rgm = tRgm.getText()+"";
nome = tNome.getText()+"";
curso = tCurso.getText()+"";
idade = Integer.parseInt(tIdade.getText()+"");
campus = Integer.parseInt(tCampus.getText()+"");
if(c1.setAluno(rgm,nome,curso,idade,campus)) JOptionPane.showMessageDialog(null, "Aluno cadastrado com sucesso");
else
JOptionPane.showMessageDialog(null, "Falha ao cadastrar aluno ou RGM já existente no sistema");
}
}
}
Obrigado pela dica… Mas infelizmente tentei e não deu certo…
Já tentei também várias maneiras de efetuar essa declaração:
Tanto dentro dos métodos action performed, dentro do construtor, etc… Nenhum modo deu certo…
Alguém teria alguma outra sugestão?
Abraços
cara, é que vc utiliza o c1 em varios metodos, então ele tem que ser um atributo da sua classe, não pode estar declarado em nenhum metodo e sim na classe
public class cliente extends JFrame .... {
//declarado na classe, fora de qualquer metodo
CadAluno c1 = null;
...
}