jTable

9 respostas
vertuam

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

9 Respostas

own_prison

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)

anjomal

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+

vertuam

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

anjomal

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+

vertuam

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

anjomal

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

vertuam

Ola

são as duas janela são.

anjomal

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…

vertuam

Valeu vou ver se mudo para jDialog.

Valeu mesmo ajudou muito

Um Abraço

Renato V. Neto

Criado 27 de janeiro de 2003
Ultima resposta 28 de jan. de 2003
Respostas 9
Participantes 3