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
Como utilizar ListSelectionListener
A
2 Respostas
<?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