Pegar variavel do formulario principal [Resolvido]
5 respostas
flaviotomazio
Olá, eu tenho no meu arquivo main.java que fica no pacote “projeto” uma variavel tipo String chamada url, porem eu quero pegar o valor dessa variavel e poder usar num form chamado FrmCadastro que fica num pacote chamado visual, como eu faria?
Não entendi bem o que você quer pq tem que se lembrar que o JAVA trabalha com uma linguagem orientada a objeto.
Tem que pensar sempre em classes, objetos, atributos de classe e de objeto, visibilidade, construtores, etc…
O que você quer pode ser feito de N maneiras dependendo do resultado que você deseja.
Implementei uma forma passando o valor do atributo url pelo construtor da classe FrmCadastro.
packageprojeto;importvisual.FrmCadastro;publicclassMain{privateStringurl;privateFrmCadastrofrmCadastro;publicvoidcriaFormCadastro(){frmCadastro=newFrmCadastro(url);// Seu código}publicStringgetUrl(){returnurl;}publicvoidsetUrl(Stringurl){this.url=url;}}packagevisual;publicclassFrmCadastro{privateStringurl;publicFrmCadastro(Stringurl){this.url=url;}}
flaviotomazio
Não entendi bem
essa parte é do código principal
importjavax.swing.JOptionPane;publicclassFormPrincipalextendsjavax.swing.JFrame{StringenderecoBD="";/**CreatesnewformFormPrincipal*/publicFormPrincipal(){initComponents();this.setLocationRelativeTo(null);enderecoBD="jdbc:firebirdsql:"+JOptionPane.showInputDialog(this,"Informe o endereço do banco de dados:","localhost/C:/ProjetoIntegrador/database/DBSISTEMA.FDB");}publicStringretornaUrl(){returnenderecoBD;}
Agora no formAluno que tambem está no package visual eu quero pegar a variavel enderecoBD que esta na principal, agora não sei como fazer isso.
furutani
Olá
Você tem que passar de alguma uma referencia do FormPrincipal para o FormAluno. Você pode fazer isso via construtor como o LeoNicolas sugeriu.
flaviotomazio
Aqui nessa parte da erro:
publicstaticvoidmain(Stringargs[]){java.awt.EventQueue.invokeLater(newRunnable(){publicvoidrun(){newFormAluno(newjavax.swing.JFrame(),true).setVisible(true);//AQUI DA ERRO}});}
flaviotomazio
Valeu pessoa, so passei uma string vazia, funcionou:
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FormAluno(new javax.swing.JFrame(), true,"").setVisible(true); //AQUI DA ERRO
}
});
}