Dúvida sobre JTable e ResultSet

4 respostas
O

Bom dia galera!!! Seguinte tenho a seguinte dúvida, como eu faço para pegar o resultset de uma determinada classe e inserir esse resultado em uma JInternalFrame onde possui um JTable, sendo que este esta em uma outra classe. Detalhe eu to usando o NetBeans 6 e desenhei a tela do JInternalFrame e JTable pelo Matisse. Desde já agradeço. :wink:

4 Respostas

Tchello

Boa tarde.

Podemos pensar em várias soluções para este caso:

No frame que possui o JTable deve existir um método que receba esse resultset e atualize os valores da JTable, isso caso o frame ja exista.
Analize a possibilidade dele receber alguma classe de conjunto de dados (com uma collection, por exemplo) especializada para o transporte desses dados, no lugar do result set.
Caso seja um frame que esta sendo criado pense se não seria interessante receber esse rs ou a colletion logo na sua construção.

Como disse são várias soluções possíveis, cabe a você juga-las e escolher a que melhor se encaixe no contexto do seu código.

Espero tê-lo ajudado em algo.
[]'s

O

Tchello:
Boa tarde.

Podemos pensar em várias soluções para este caso:

No frame que possui o JTable deve existir um método que receba esse resultset e atualize os valores da JTable, isso caso o frame ja exista.
Analize a possibilidade dele receber alguma classe de conjunto de dados (com uma collection, por exemplo) especializada para o transporte desses dados, no lugar do result set.
Caso seja um frame que esta sendo criado pense se não seria interessante receber esse rs ou a colletion logo na sua construção.

Como disse são várias soluções possíveis, cabe a você juga-las e escolher a que melhor se encaixe no contexto do seu código.

Espero tê-lo ajudado em algo.
[]'s

Sendo a primeira opção nesse caso mais adequada como poderia proceder?

Valeu

Tchello

Vamos supor:

A seja a classe chefe que tem a JTable como atributo privado e B seja a classe (frame) que é instanciada por A.
O que vc quer é que ao executar alguma ação em B devemos manipular componentes em A.
Exemplo;

public class A
{
   private JTable tabela;

   public A()
  {
      tabela = new JTable();
      ...
  }
  public void ChamaB()
  {
      B obj = new B(this); //passa esse objeto A como referencia na construção do objeto B
      B.setVisible(true); //supondo que B seja um frame... abri-lo-ei (caraca!)
  }
  public void ModificaTabela(ResultSet rs)
  {
      //executa o método que interpreta esse ResultSet pra atualizar a JTable...
  }
}
Agora a classe B
public class B
{
    A referencia;
 
   public B(A ref)
   {
        this.referencia  = ref;  //mostra pra B a referencia de quem foi que o instanciou
   }
  public void ExecuteiAlgumaCoisa()
 {
      ResultSet rs = new ResultSet(); // faz as funçoes pra gerar o ResultSet.
      referencia.ModificaTabela(rs); //chama o metodo da classe instanciadora q muda o table nela...
 }
}
É basicamente isso. Particularmente não gosto mto da ideia de ficar trocando ResultSet assim, mas é bem simples. Espero ter sido bem didático no exemplo, boa sorte. []'s
O
Tchello:
Vamos supor:

A seja a classe chefe que tem a JTable como atributo privado e B seja a classe (frame) que é instanciada por A.
O que vc quer é que ao executar alguma ação em B devemos manipular componentes em A.
Exemplo;

public class A
{
   private JTable tabela;

   public A()
  {
      tabela = new JTable();
      ...
  }
  public void ChamaB()
  {
      B obj = new B(this); //passa esse objeto A como referencia na construção do objeto B
      B.setVisible(true); //supondo que B seja um frame... abri-lo-ei (caraca!)
  }
  public void ModificaTabela(ResultSet rs)
  {
      //executa o método que interpreta esse ResultSet pra atualizar a JTable...
  }
}
Agora a classe B
public class B
{
    A referencia;
 
   public B(A ref)
   {
        this.referencia  = ref;  //mostra pra B a referencia de quem foi que o instanciou
   }
  public void ExecuteiAlgumaCoisa()
 {
      ResultSet rs = new ResultSet(); // faz as funçoes pra gerar o ResultSet.
      referencia.ModificaTabela(rs); //chama o metodo da classe instanciadora q muda o table nela...
 }
}
É basicamente isso. Particularmente não gosto mto da ideia de ficar trocando ResultSet assim, mas é bem simples. Espero ter sido bem didático no exemplo, boa sorte. []'s

Véio do céu ainda não entendi... Teria alguma forma mais simples ou mais didática? Desde já agradeço heim... Valeu :wink:

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