jTable

Ola

Estou tendo problemas com um jTable, gostaria que quando o usuario clica-se em uma linha da tabela e em seguida clica-se em um botão que o valor contido na linha e coluna fosse transferido para o formulario que chamou a jTable.

Sera que alguem poderia me ajudar.

Grato

Renato V. Neto

E aí galera… respondendo a pergunta dele vcs estão respondendo a minha tb… to com a mesma duvida… um amigo meu disse que naum tem como fazer isso no java… mas se tiver eu gostaria de saber…

valeu 8)

Bom tem jeito sim, isso e logico… e o seguinte se a JANELA que vc abre com o jTable e modal fassa o seguite, crie dentro dela uma função chamada por exemplo getCodigo() o exemplo abaixo deve ajudar

  String Codigo;
  frmTabela frm = new frmTabela();
  frmTabela.show(true); //Janela Modal aguardando a entrada do Usuario
  Codigo = frmTabela.getCodigo(); //não de dispose na classe antes de pegar o valor aqui
  frmTabela.dispose(); //Bom aqui ja pode
  //Rotinas que fazem o tratamento de codigo

Bom dentro do formulario frmTabela simplismente pegue o valor contido na Tabela e guarde ele numa variavel que vc pega com a função getCodigo(). não sei se ajudei mais e isso ai !!!

Falow t+

Muito obrigado, entendi o que eu estava fazendo de errado.

    private void Clik(java.awt.event.MouseEvent evt) {
        int Retorno;
        Retorno = jTable1.getSelectedRow();
        Vector Recebe_v = (Vector)gridRows.get(Retorno);
        String Escolha = (String)Recebe_v.get(0);
    }

Consequi pegar o valor que queria, agora se nao for abusar, gostaria de saber como retornar esta valor a o form que chamou a consulta.

Valeu mesmo

Renato V. Neto

Vamos lá diagamos que o FormCliente Chama o Dialog Consulta abaixo segue o Codigo do formulario frmCliente:

  public class frmCliente extends JFrame {
    public frmClients() {
      //Metodos de Criação da interface e etc ... etc ...
   }
   
   //Digamos que vc tenha um Botao Consultar
   
   private void cmdConsultaClick(java.awt.event.MouseEvent evt) {
      frmConsulta consulta = new frmConsulta();
      String escolha;
      consulta.show(true) //true estou definindo essa janela como modal, ou seja o codigo abaixo não vai ser executado ate que a janela consulta seja fechada.
      escolha=consulta.getEscolha();
      if(!escolha="") { //verifica se a consulta retornada e vazia
    //dentro do if va faz a consulta ou oque vc deseja fazer com o retorno do formulario consulta
     }

     //aqui vc tira o formulario consulta da memoria
     consulta.dispose();
  }
 }
}

Codigo do Formulario consulta


public class frmConsulta extends JDialog {
   //Variavel publica para guardar a escolha
   private String escolha = "";

   public frmConsulta() {
         //Metodos de Criação da interface e etc ... etc ...
   }
  
   //Sua função para pegar o valor do jTable
    private void Clik(java.awt.event.MouseEvent evt) { 
        int Retorno; 
        Retorno = jTable1.getSelectedRow(); 
        Vector Recebe_v = (Vector)gridRows.get(Retorno); 
        this.escolha = (String)Recebe_v.get(0); 
    } 

   //Função public para ser acessada de outra classe, para então retornar o valor de escolha
   public String getEscolha() {
     return this.escolha;
  }   
  
}

A unica coisa que vc tem de prestar atenção e que vc não pode dar dispose dentro da sua classe Consulta pq senão vc perdera referencia, O codigo acima esta grande pq estou tentando te passar, passo a passo mais pode ser bem reduzido, a função getEscolha retorna uma String poderia retornar um Vetor delas ou um Vetor de Objetos.

Acho que e só, qualquer duvida poste !!!
Falow
t+

O codigo na tela de consulta funcionou, mas estou tendo problemas quando tela que chama a consulta.

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        ProcuraPorUnidades PorUnidades = new ProcuraPorUnidades();
        JPanel glass6 = new JPanel();
        glass6.setLayout(null);
        glass6.setOpaque(false);
        PorUnidades.addInternalFrameListener(new ModalAdapter(glass6));
        glass6.add(PorUnidades);
        setGlassPane(glass6);
        glass6.setVisible(true);
        String Escolha;
        Escolha=PorUnidades.getEscolha();
        PorUnidades.setVisible(true);
        PorUnidades.dispose();
    }

Eu estou utilizando jInternalFrame, com o dispose o jInternalFrame não abre, e se tiro na volta da consulta o glass6 nao fecha ai não tenho acesso aos campos.

Sera que tem alguma dica ai.

Muito Obrigado

Renato V. Neto

Tanto a janela que chama a consulta quanto a janela da consulta são JInternalFrames ?

Ola

são as duas janela são.

Então e por isso, o seguinte pela outra janela(a de consulta) tb ser un JInternalFrame ela simplismente não espera seu usuario fecha-la para proseguir na linha seguinte abaixo sua chamada, por isso todo esse problema,os JDialogs esperam ate que seu usuario tome uma atitude feche a janela, para então proseguir. dá pra fazer com JInternalFrames so que fica mais dificil com JDialogs fica bem mais facil… em casa ejo se encontro uma solução legal com JInternalFrames e posto aqui falow … mais se vc extender sua classe de consulta a JDialog e setala como modal ja irá resolver seu problema…

Valeu vou ver se mudo para jDialog.

Valeu mesmo ajudou muito

Um Abraço

Renato V. Neto