Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Ruben_Barbosa

[Resolvido]TransFerir Dados de um JTable para um JtextField de uma Outra Frame

Recommended Posts

Ruben_Barbosa

Bom dia precisava de transferir Dados de um Jtable para uns Jtextfields que estão noutra frame.

Mas não sei ao certo fazer isso.

Comecei com este Codigo

JConsulta = (DefaultTableModel) this.jTableArtigos.getModel();

        int[] select = this.jTableArtigos.getSelectedRows();//captura as linhas selecionadas
        int Empty = this.jTableArtigos.getRowCount();
        JFrameArtigos fa = new JFrameArtigos();


        //Modo como Selecionar a Linha
//        ListSelectionModel selectionModel = new DefaultListSelectionModel();
//        selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

        //validação se Jtable esta vazia ou Não
        if (Empty == 0) {
            JOptionPane.showMessageDialog(null, "Nenhuma celula selecionada.", "Informação", JOptionPane.INFORMATION_MESSAGE);
        } else {

              for (int i = (select.length - 1); i >= 0; --i) {
                        Object valorActual =  select[i];
                        fa.setTxtCodArt((JTextField) valorActual);
                }
            }

Share this post


Link to post
Share on other sites
mribeiro

Parto do principio que queres passar os dados para a JFrameArtigos certo?

Então podes alterar o construtor da mesma para receber um objecto do tipo de dados que devolve o "this.jTableArtigos.getRowCount();" (de cor não sei qual é)

Depois no construtor (ou onde quiseres) podes tratar essa informação

Espero ter ajudado  :confused:

Share this post


Link to post
Share on other sites
Knitter

Duas JFrames na mesma aplicação? Aí está uma situação menos correcta. De qualquer modo, ou usas o contrutor, como o mribeiro te indicou, ou simplesmente adicionas um método às classe para onde queres passar os dados, afinal é para isso que os métodos servem :confused:

Share this post


Link to post
Share on other sites
Ruben_Barbosa

Knitter é errado porque :S LOL.

Entao eu tenho um botão onde carrego e abre me um frame com Artigos e o que eu quero é se selecionar esse artigos ele passa o artigo para a frame respectiva para fazer requisicao :|.

Share this post


Link to post
Share on other sites
Knitter

Para passares valores entre as frames usa métodos, é para isso que servem, basta que na frame ocm Artigos tenhas uma variável para a frame a quem queres passar os artigos. Dependendo de como o código estiver estruturado, essa variável pode ser preenchida no construtor da frame dos artigos ou com um método set.

Uma JFrame, se é que é isso que estás a usar, porque o termo "frame" é algo dúbio, é um componente de topo, é o componente principal de uma aplicação e deve ser único, não devem existir duas JFrames. O componente representa toda a aplicação, tem uma iniciação mais lenta que os outros componentes e regista mais informações no SO que os outros componentes, além de ter comportamento específico por ser o tipo de componente de topo que é. Ter duas é duplicar o esforço que depois não é rentabilizado.

Usas uma JFrame para a janela principal da aplicação e JDialog para qualquer outra janela que seja para abrir a partir da aplicação principal, dos seus menus, botões, atalhos ou outra interacção que exista na aplicação. As JDialogs permitem fazer janelas quase como as JFrames, são similares em quase tudo o que oferecem ao programador mas são mais simples, mais leves, e mais adequadas ao comportamento que estás a tentar fazer.

Claro que tudo com JFrame funciona, não há razão para não funcionar, mas não é adequado.

Share this post


Link to post
Share on other sites
Ruben_Barbosa

Ok :confused: .

Mas eu nao tou a ver como irei fazer isso :|.

Tou no evento click sem duvida mas quero passar a informção dessa Jtable para outra frame :|.

Share this post


Link to post
Share on other sites
Knitter

//evento clique da janela com Artigos...
//processar os artigos seleccionados....
//....

janelaPrincipal.adicionarArtigos(artigosSeleccionados);

//...

Vou assumir que tens uma JFrame, de nome Main e que nessa janela tens os JTextFields. É também dessa janela que instâncias a janela de artigos, denominada Artigos.

//instanciar a janela de artigos e passar uma referência para a janela principal:
new Artigos(this).setVisible(true);

//na classe Main ter um método para receber os dados
public void adicionarArtigos(Object[] dados) {
    //colocar os valores nas caixas de texto...
}


//no construtor de Artigos:
private Main janelaPrincipal;

public Artigos(Main janelaPrincipal) {
this.janelaPrincipal = janelaPrincipal;
}

Naturalmente tens de adaptar o código ao teu caso, mas a ideia base é simplesmente teres um método que receba os dados, e teres uma variável para puderes invocar esse método. Dúvidas?

Share this post


Link to post
Share on other sites
Ruben_Barbosa

Já resolver e Obrigado Knitter mas nao fiz dessa forma :thumbsup: .

Cumps

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.