Como utilizar ListSelectionListener

2 respostas
A

Boa noite galera, to querendo aprendera utilizar ListSelectionListener para capturar uma linha que o usuário selecionar da minha JTable, para ela ser atualizada, mas eu queria que apos selecionar essa linha, os dados serem tranferidos para outra frame para o usuario editar o campo que ele queira, a assim ele porder clicar no botao e altarar os dados no banco de dados,como faço isso?? vlw

2 Respostas

juniorsatanas
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:rich="http://richfaces.org/rich">
    <style type="text/css">
        .ecol1 { vertical-align: top; padding-right : 25px }
        .ecol2 { vertical-align: top; border-left: #ACBECE 1px solid; padding-left : 10px }
        .rich-calendar-tool-btn{
            font-family: Arial, Verdana;
        }
    </style>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
        <link rel="StyleSheet" type="text/css" href="../style/estilos.css" media="screen" />
    </head>
    <a4j:keepAlive beanName="pessoaMB" />
    <ui:composition template="/template/template.xhtml">
        <ui:define name="corpo">
            <rich:tabPanel switchType="ajax">
                <rich:tab label="Cadastro de Pessoa">
                    <a4j:form>
                        <rich:messages />
                        <legend>Cadastro de Pessoa</legend>
                        <a4j:region id="regiaoAjax">
                            <a4j:status id="sts">
                                <f:facet name="start">
                                    <h:graphicImage value="/images/ajax-loader_1.gif" />
                                </f:facet>
                            </a4j:status>
                        </a4j:region>
                        <!-- INICIA FORMULARIO-->
                        <fieldset>
                            <h:panelGrid columns="2" id="inputs">

                                <h:outputLabel for="matricula" value="Digite a Matrícula: " />
                                <h:inputText id="matriuclaInput" value="#{pessoaMB.pessoa.matricula}"  styleClass="inputPesquisa" >
                                    <a4j:commandButton  value="Pesquisar" action="#{pessoaMB.pesquisaByMatricula}" styleClass="inputPesquisaBtn2" reRender="inputs,fisicas,pessoas">
                                    </a4j:commandButton>
                                </h:inputText>
                                <h:outputLabel for="nome" value="Digite o Nome: " />
                                <h:inputText id="nomeInput" value="#{pessoaMB.pessoa.nome}"   styleClass="inputPesquisa">
                                    <a4j:commandButton  value="Pesquisar" action="#{pessoaMB.pesquisaByNome}" styleClass="inputPesquisaBtn4" reRender="inputs,fisicas,pessoas">
                                    </a4j:commandButton>
                                </h:inputText>
                                <h:outputLabel for="digina" value="Digina.: "  />
                                <h:inputText id="digina" value="#{pessoaMB.pessoa.digina}" styleClass="edit" size="30">
                                </h:inputText>
                                <h:outputLabel for="email" value="E-mail.:"  />
                                <h:inputText id="email" value="#{pessoaMB.pessoa.email}"  styleClass="edit" size="40">
                                </h:inputText>
                                <h:outputLabel for="cpf" value="CPF.:"  />
                                <h:inputText id="cpf" value="#{pessoaMB.pessoa.cpf}" styleClass="edit" size="15">
                                    <rich:jQuery selector="#cpf" query="mask('[CPF removido]')" timing="onload"/>
                                </h:inputText>
                                <h:outputLabel for="RG" value="RG"  />
                                <h:inputText id="RG" value="#{pessoaMB.pessoa.RG}" styleClass="edit" size="20">
                                </h:inputText>
                                <h:outputLabel for="orgao_exp" value="Orgao Exp.:"  />
                                <h:inputText id="orgao_exp" value="#{pessoaMB.pessoa.orgao_exp}" styleClass="edit" size="20">
                                </h:inputText>
                                <h:outputLabel for="titulo_ele" value="Titulo Eleitor.:"  />
                                <h:inputText id="titulo_ele" value="#{pessoaMB.pessoa.titulo_ele}" styleClass="edit" size="30">
                                </h:inputText>
                                <h:outputLabel for="endereco" value="Endereco.:"/>
                                <h:inputText id="endereco" value="#{pessoaMB.pessoa.endereco}" styleClass="edit" size="40">
                                </h:inputText>
                                <h:outputLabel for="bairro" value="Bairro.:"/>
                                <h:inputText id="bairro" value="#{pessoaMB.pessoa.bairro}" styleClass="edit" size="40">
                                </h:inputText>
                                <h:outputLabel for="uf" value="UF.:"/>
                                <rich:comboBox defaultLabel="" id="uf" value="#{pessoaMB.pessoa.uf}" >
                                    <f:selectItem itemValue="AC"/>
                                    <f:selectItem itemValue="AL" />
                                    <f:selectItem itemValue="AM" />
                                    <f:selectItem itemValue="AP"/>
                                    <f:selectItem itemValue="BA" />
                                    <f:selectItem itemValue="CE" />
                                    <f:selectItem itemValue="DF" />
                                    <f:selectItem itemValue="ES"/>
                                    <f:selectItem itemValue="FN"/>
                                    <f:selectItem itemValue="GO" />
                                    <f:selectItem itemValue="MA" />
                                    <f:selectItem itemValue="MG" />
                                    <f:selectItem itemValue="MS" />
                                    <f:selectItem itemValue="MT" />
                                    <f:selectItem itemValue="PA" />
                                    <f:selectItem itemValue="PB" />
                                    <f:selectItem itemValue="PE"/>
                                    <f:selectItem itemValue="PI"/>
                                    <f:selectItem itemValue="PR" />
                                    <f:selectItem itemValue="RJ" />
                                    <f:selectItem itemValue="RN"/>
                                    <f:selectItem itemValue="RO" />
                                    <f:selectItem itemValue="RR" />
                                    <f:selectItem itemValue="RS"/>
                                    <f:selectItem itemValue="SC" />
                                    <f:selectItem itemValue="SE"/>
                                    <f:selectItem itemValue="SP"/>
                                    <f:selectItem itemValue="TO" />
                                </rich:comboBox>
                                <h:outputLabel for="cidade" value="Cidade.:"/>
                                <h:inputText id="cidade" value="#{pessoaMB.pessoa.cidade}" styleClass="edit" size="40">
                                </h:inputText>
                                <h:outputLabel for="fone" value="Fone.:"/>
                                <h:inputText id="fone" value="#{pessoaMB.pessoa.fone}" styleClass="edit" size="15">
                                    <rich:jQuery selector="#fone" query="mask('([telefone removido]')" timing="onload"/>
                                </h:inputText>
                                <h:outputLabel for="celular" value="Tel. Celular.:"/>
                                <h:inputText id="celular" value="#{pessoaMB.pessoa.celular}" styleClass="edit" size="15">
                                    <rich:jQuery selector="#celular" query="mask('([telefone removido]')" timing="onload"/>
                                </h:inputText>
                                <h:outputLabel for="Data Nascimento.:" value="Data Nascimento.: "  />
                                <rich:calendar id="data_nasc" value="#{pessoaMB.pessoa.data_nasc}">
                                    <a4j:support event="ondateselected" />
                                </rich:calendar>
                                <h:outputLabel for="Data Nascimento.:" value="Data Matricula.: "  />
                                <rich:calendar id="data_matricula" value="#{pessoaMB.pessoa.data_matricula}">
                                    <a4j:support event="ondateselected" />
                                </rich:calendar>
                                <h:outputLabel for="id" value="CÓDIGO.: "  />
                                <h:inputText id="id" value="#{pessoaMB.pessoa.id}" styleClass="inputPesquisa3" size="3" >
                                </h:inputText>
                            </h:panelGrid>
                            |<a4j:commandButton value="Inserir" action="#{pessoaMB.save}" status="sts" reRender="inputs,fisicas,pessoas" styleClass="botoes"/>
                            |<a4j:commandButton value="Deletar" action="#{pessoaMB.delete}" status="sts" reRender="inputs,fisicas,pessoas" styleClass="botoes"/>
                            |<a4j:commandButton value="Modificar" action="#{pessoaMB.merge}" status="sts" reRender="inputs,fisicas,pessoas" styleClass="botoes"/>
                            |<a4j:commandButton value="Listar" action="#{pessoaMB.list}" status="sts" reRender="inputs,fisicas,pessoas" styleClass="botoes"/>
                            |<a4j:commandButton value="Relatório" action="toCadastraMensalidade" status="sts" reRender="inputs,fisicas,pessoas" styleClass="botoes"/>
                            |<a4j:commandButton value="Menslidades" action="toCadastraMensalidade" status="sts" reRender="inputs,fisicas,pessoas" styleClass="botoes"/>
                            |<a4j:commandButton value="Voltar" immediate="true" action="toIndex" styleClass="botoes"/>|

                        </fieldset>
                        <rich:messages />
                        <fieldset><legend>Atualização de Dados</legend>
                            <f:subview id="listauser">

                                <rich:dataTable value="#{pessoaMB.pessoas}" var="pessoa" rows="5" id="pessoas" width="100%" cellspacing="0" cellpadding="0" border="5">
                                    <h:column>
                                        <f:facet name="header">
                                            <h:outputText value="MATRÍCULA" />
                                        </f:facet>
                                        <h:outputText value="#{pessoa.matricula}" />
                                    </h:column>
                                    <h:column>
                                        <f:facet name="header">
                                            <h:outputText value="NOME" />
                                        </f:facet>
                                        <h:outputText value="#{pessoa.nome}" />
                                    </h:column>
                                    <h:column>
                                        <f:facet name="header">
                                            <h:outputText value="E-MAIL" />
                                        </f:facet>
                                        <h:outputText value="#{pessoa.email}" />
                                    </h:column>
                                    <h:column>
                                        <f:facet name="header">
                                            <h:outputText value="CPF" />
                                        </f:facet>
                                        <h:outputText value="#{pessoa.cpf}" />
                                    </h:column>
                                    <h:column>
                                        <f:facet name="header">
                                            <h:outputText value="DATA NASC." />
                                        </f:facet>
                                        <h:outputText value="#{pessoa.data_nasc}">
                                            <f:convertDateTime pattern="dd/MM/yyyy" />
                                        </h:outputText>
                                    </h:column>
                                    <h:column>
                                        <f:facet name="header">
                                            <h:outputText value="CELULAR" />
                                        </f:facet>
                                        <h:outputText value="#{pessoa.celular}" />
                                    </h:column>
                                    <h:column>
                                        <f:facet name="header">
                                            <h:outputText value="Excluir"/>
                                        </f:facet>
                                        <a4j:commandLink action="#{pessoaMB.delete}" status="sts" reRender="inputs,fisicas,pessoas" >
                                            <h:outputText value="Excluir"/>
                                            <f:setPropertyActionListener value="#{pessoa.id}" target="#{pessoaMB.id}" /> <!-- pega  o id -->
                                        </a4j:commandLink>
                                    </h:column>

                                    <h:column>
                                        <f:facet name="header">
                                            <h:outputText value="Editar"/>
                                        </f:facet>
                                        <a4j:commandLink reRender="inputs,fisicas,pessoas" >
                                            <h:outputText value="Editar"/>
                                            <f:setPropertyActionListener value="#{pessoa}" target="#{pessoaMB.pessoa}" />

                                        </a4j:commandLink>
                                    </h:column>

                                    <f:facet name="footer">
                                        <rich:datascroller />
                                    </f:facet>

                                </rich:dataTable>

                            </f:subview>
                        </fieldset>
                    </a4j:form>
                </rich:tab>
                <!-- ****************************************************************** TAB LISTA DE PESSOAS********************************************-->
                <rich:tab label="Lista de Pessoas">
                    <f:subview id="listauser">
                        <a4j:form>
                            <rich:messages />
                            <fieldset>
                                <a4j:region id="regiaoAjax">
                                    <a4j:status id="sts">
                                        <f:facet name="start">
                                            <h:graphicImage value="/images/ajax-loader_1.gif" />
                                        </f:facet>
                                    </a4j:status>
                                </a4j:region>
                                <h:panelGrid columns="2" id="inputs">
                                    <h:outputLabel for="nomeLabel" value="Digite o Nome: " />
                                    <h:inputText id="nomeInput" value="#{pessoaMB.pessoa.nome}" style=" width : 250px;"  styleClass="inputPesquisa">
                                        <a4j:commandButton value="Pesquisar" action="#{pessoaMB.pesquisaByNome}" reRender="pessoas">
                                        </a4j:commandButton>
                                    </h:inputText>
                                </h:panelGrid>
                            </fieldset>
                            <rich:dataTable value="#{pessoaMB.pessoas}" var="pessoa" rows="10" id="pessoas" width="100%" cellspacing="0" cellpadding="0" border="1">
                                <h:column>
                                    <f:facet name="header">
                                        <h:outputText value="MATRÍCULA" />
                                    </f:facet>
                                    <h:outputText value="#{pessoaMB.pessoa.matricula}" />
                                </h:column>
                                <h:column>
                                    <f:facet name="header">
                                        <h:outputText value="NOME" />
                                    </f:facet>
                                    <h:outputText value="#{pessoaMB.pessoa.nome}" />
                                </h:column>
                                <h:column>
                                    <f:facet name="header">
                                        <h:outputText value="E-MAIL" />
                                    </f:facet>
                                    <h:outputText value="#{pessoaMB.pessoa.email}" />
                                </h:column>
                                <h:column>
                                    <f:facet name="header">
                                        <h:outputText value="CPF" />
                                    </f:facet>
                                    <h:outputText value="#{pessoaMB.pessoa.cpf}" />
                                </h:column>
                                <h:column>
                                    <f:facet name="header">
                                        <h:outputText value="DATA NASC." />
                                    </f:facet>
                                    <h:outputText value="#{pessoaMB.pessoa.data_nasc}">
                                        <f:convertDateTime pattern="dd/MM/yyyy" />
                                    </h:outputText>
                                </h:column>
                                <h:column>
                                    <f:facet name="header">
                                        <h:outputText value="CELULAR" />
                                    </f:facet>
                                    <h:outputText value="#{pessoaMB.pessoa.celular}" />
                                </h:column>
                                <h:column>
                                    <f:facet name="header">
                                        <h:outputText value="Excluir"/>
                                    </f:facet>
                                    <a4j:commandLink action="#{pessoaMB.delete}" status="sts" reRender="inputs,fisicas,pessoas" >
                                        <h:outputText value="Excluir"/>
                                        <f:setPropertyActionListener value="#{pessoa.id}" target="#{pessoaMB.id}" />
                                    </a4j:commandLink>
                                </h:column>
                                <h:column>
                                    <f:facet name="header">
                                        <h:outputText value="Editar"/>
                                    </f:facet>
                                    <a4j:commandLink reRender="inputs,fisicas,pessoas" >
                                        <h:outputText value="Editar"/>  
                                        <f:setPropertyActionListener value="#{pessoa}" target="#{pessoaMB.pessoa}" />
                                    </a4j:commandLink>
                                </h:column>
                                <f:facet name="footer">
                                    <rich:datascroller />
                                </f:facet>
                            </rich:dataTable>
                        </a4j:form>

                    </f:subview>
                </rich:tab>
                <!-- ******************************FIM************************************ TAB LISTA DE PESSOAS********************************************-->
                <rich:tab label="Filtros">
                    <h:form>
                        <rich:dataTable value="#{pessoaMB.pessoas}" var="cap" rows="30" reRender="ds" id="simpletable" >
                            <f:facet name="header">
                                <rich:columnGroup>
                                    <rich:column colspan="2" >
                                        <h:outputText value="-FILTRA POR NOME - "/>
                                    </rich:column>
                                    <rich:column breakBefore="true">
                                        <h:outputText value="State Name"/>
                                    </rich:column>
                                    <rich:column>
                                        <h:outputText value="State Capital"/>
                                    </rich:column>
                                </rich:columnGroup>
                            </f:facet>
                            <rich:column filterBy="#{cap.nome}" filterEvent="onkeyup" filterValue="#{pessoaMB.pessoa.nome}">
                                <h:outputText value="#{cap.nome}"/>
                            </rich:column>
                            <rich:column filterBy="#{cap.matricula}" filterEvent="onkeyup" filterValue="#{pessoaMB.pessoa.matricula}">
                                <h:outputText value="#{cap.matricula}"/>
                            </rich:column>
                            <f:facet name="footer">
                                <rich:datascroller id="ds" renderIfSinglePage="false"></rich:datascroller>
                            </f:facet>
                        </rich:dataTable>
                        <a4j:commandButton action="#{capitalsBean.resetFilter}" value="Reseta" reRender="simpletable" ajaxSingle="true" limitToList="true"/>
                    </h:form>
                </rich:tab>
                <rich:tab label="Relatórios">
                </rich:tab>
            </rich:tabPanel>
        </ui:define>
    </ui:composition>
</html>
M

Não seria mais fácil o usuário alterar pela própria tabela? Ele dá um clique duplo, altera o valor e você atualiza no banco.

Criado 10 de março de 2010
Ultima resposta 11 de mar. de 2010
Respostas 2
Participantes 3