Chamar outra classe

14 respostas
B
estou chamando uma outra classe que é ControlPortal

so que kero pegar um valor do JtextField tplaca

ai fasso assim

ControlPortal cp = new ControlPortal

String dados = cp.tplaca.getText();

so que ocorre o seguinte chamando assim ele executa o programa

ControlPortal que é um aplicativo JDesktop, com JInternalFrames;

como fasso para chamar so o tplaca;

14 Respostas

danieldestro

“Como eu faço” ou “Como eu fasso”???

Bom, creio que já exista uma instância de ControlPortal. Então vc não deve criar ela de novo para pegar o valor.
Pega da instância que já existe (se houver).

B
O que ocorre é o seguinte

tenho essa classa GeraVeiculo

que gera um relatorio em jasperviewer

para eu fazer a consulta sql

vou fazer atraves de dados digitados pelo usuario

que está nessa outra classe Chamada ControlPortal

que é um aplicativo desktop

pois se eu fazer assim no GeraVeiculo

ControlPortal cp = new ControlPortal();

String pega dados = cp.labelsql.getText();

se eu fazer isso ele vai rodar o ControlPane : vai abrir um JDesktopPanel

e isso eu não kero

E tem tb o seguinte dentro do ControlPortal criei uma classe
chamada FrameVeiculo e dentro dela tem um JTextField chamado
tplaca

em um outro aplicativo vou pegar o valor dela
como fasso?

danieldestro

Se vc já vai pegar os dados dessa tela, quer dizer que ela JÁ está aparecendo, certo?

Então, pega os dados do objeto que controla esta tela. Simples!

B

Me da um
exemplo
pois não consegui intender sua teoria

danieldestro

Está faltando conceito de Orientação a Objetos, amigo.

Imagine que a variável cp seja uma referência para um objeto do tipo ControlPortal.

Para pegar os dados você apenas faria: cp.labelsql.getText();, correto?

Mas se você fizer: ControlPortal cp = new ControlPortal();, antes de tentar pegar o dado, o programa criará uma nova janela.

Entendeu?

B

cara fiz isso que voce falow

so que da o seguinte erro

C:Controle_Salome>c:jdkinjava RelatVeiculo
Exception in thread "main" java.lang.NullPointerException
        at RelatVeiculo.geraRelatorio(RelatVeiculo.java:23)
        at RelatVeiculo.main(RelatVeiculo.java:36)
B

a classe é a seguinte

import dori.jasper.engine.*; import dori.jasper.view.*; import dori.jasper.view.JasperViewer; import java.sql.*; import java.util.*; import java.awt.*; import java.awt.event.*; public class RelatVeiculo { ControlPortal cp; private static Connection getConnection() throws ClassNotFoundException, SQLException { String url = "jdbc:odbc:dbPortal"; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection MinhaConexao = DriverManager.getConnection(url); Statement MeuState = MinhaConexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); return MinhaConexao; } /* Gera Relatorio e visualiza-o */ public void geraRelatorio( ) throws JRException, Exception { String sql = "SELECT * FROM TBVeiculo"; // aqui suo a variavel cp String dados = cp.tplaca.getText(); if(!cp.tplaca.getText().equals("")) { sql = sql + " WHERE dbplaca LIKE " + "'" dados +"'" ; } else { sql = sql ; } Connection MinhaConexao = getConnection(); Statement smt = MinhaConexao.createStatement(); ResultSet rs= smt.executeQuery(sql); /* implementação da interface JRDataSource para DataSource ResultSet */ JRResultSetDataSource jrRS = new JRResultSetDataSource( rs ); JasperPrint print = JasperFillManager.fillReport("RelatVeiculos.jasper",null,jrRS); JasperViewer.viewReport(print); } public static void main(String[] args) throws JRException, Exception { new RelatVeiculo().geraRelatorio(); } } [size=“18”][/size][size=“12”][/size]

aborges

Amigao, qd vc cria uma variavel de algum tipo nao significa q ela eh um Objeto:

ControlPortal cp

Vc deve criar uma instancia do mesmo para poder chamar algum metodo. Ao q me parece tplaca eh uma variavel publica… Nao faca isso! Crie a mesma privada e faca seus respectivos getXXX e setXXX

Voltando ao assunto do cp, para instancia-lo de um new no mesmo:

ControlPortal cp = new ControlPortal()

Eh isso aih :wink:

B

aborges

so que se eu fazer isso ControlPortal cp = new ControlPortal();

ele vai executar esse programa que é grande que contem
JDesktopPane e JInternalFrame’ s

B

esse tplaca é um JTextField aonde o usuario vai digitar dados

aborges

Quem utiliza a RelatVeiculo eh a propria ControlPortal??

Caso positivo, crie um construtor:

public RelatVeiculo(ControlPortal cp)

Entao, na ControlPortal vc cria assim:

...... = new RelatVeiculo(this);
B

o
RelatVeiculo nele eu crio um relatorio
e quero chamar o ControlPortal somente para pegar os
valores dos JtextFields para montar a consulta sql

e no ControlPortal
eu chama o RelatVeiculo para visualizar o relatorio

aborges

“BomBer_Rp”:
o
RelatVeiculo nele eu crio um relatorio
e quero chamar o ControlPortal somente para pegar os
valores dos JtextFields para montar a consulta sql

e no ControlPortal
eu chama o RelatVeiculo para visualizar o relatorio

Nossa que nó heim !!! :shock: Isso nao eh OO

Entao ControlPortal eh sua telinha. Cara RelatVeiculo nao tem ter um objeto ControlPortal. O q ele sabe eh criar relatorios! Qd vc for construir o RelatVeiculo na ControlPortal vc pode passar os parametros de tela direto no construtor do RelatVeiculo!

B

Kra é mesmo
é que esse dias estou tendo
Auditoria da SSASMAQ
e ISO 9001:2000
por isso estou meio abalado , valew
até mais

Criado 1 de setembro de 2004
Ultima resposta 2 de set. de 2004
Respostas 14
Participantes 3