To fazendo um projeto aqui, e estou com o problema de carregar as cidades, apartir do estado selecionado…
To usando banco de dados, firebird…
Já dei uma pesquisada, mas ainda não encontrei algo que me ajude…
Posso utilizar ajax em uma aplicação desktop ?
Por onde eu começo a mecher com ajax ?
Se você só quiser carregar cidades em um ArrayList (que na minha opinião é o mais simples), digo carregar só os nomes mesmo, é só você usar um txt. Cada txt corresponde a um estado, aí você vai carregando e inserindo.
Cara, acho que você usar Ajax sim em aplicações Desktops. Nunca mexi com Ajax, mas acho que seria a mesma coisa que usar Javascript e XML juntos.
EDIT:
Dependendo da sua aplicação, cabe mais usar o framework OpenLaszlo. Ele tem os mesmos “efeitos” (alguns até mais bonitos) que o Ajax. O problema do Ajax é que ele dá um trabalho muito grande pra você cara.
Enfim, boa sorte.
felipedamiani
fera, se é uma aplicação desktop como vai usar ajax? ajax só roda no browser…
no desktop você pode selecionar um estado, a partir dai monta uma lista com as cidades relacionadas
a este estado e seta na combo
se eu entendi a sua dúvida é isso!
neste site tem bastante conteudo sobre javascript e ajax www.w3schools.com
até!
valquiriamatter
Obrigada pela ajuda…
Eu sei mais ou menos oq fazer… embora naum saiba como…
Alguém pode me ajudar com o código ?
Quero que ao selecionar um estado apareça somente as cidades daquele estado…
Desde já agradeço …
Andre_Brito
Desculpe se estou errado, mas se eu usar uma aplicação offline com uma linguagem de programação, tipo php e usar CSS, Javascript e XML e rodar num browser, deixa de ser uma aplicação Desktop? (Não é ironia, é que eu não sei mesmo :D).
Pode ter certeza que o pessoal ajuda.
Até eu posso te ajudar, mas vai depender do que você tá usando (txt, Hibernate, JDBC, enfim).
Abraço.
wagnerfrancisco
valquiriamatter:
Obrigada pela ajuda...
Eu sei mais ou menos oq fazer... embora naum saiba como...
Alguém pode me ajudar com o código ?
Quero que ao selecionar um estado apareça somente as cidades daquele estado...
Desde já agradeço ...
Parece ser simples. Se no banco você cadastrar tabelas que terão a coluna cidade e a coluna estado basta fazer um SELECT.
SELECT * FROM cidade WHERE estado == 'SC';
Isso aí mostraria as cidades do estado de SC. A parte do código seria mais ou menos assim:
Connectionconn=DriverManager.getConnection("jdbc:mysql://localhost/BANCO_DE_DADOS?user=root&password=root");Statementstm=conn.createStatement();ResultSetrs=stm.executeQuery("SELECT * FROM cidade WHERE estado == 'SC' ");while(rs.next()){//façaoquequisercomoresultadoaqui,porexemplo:Stringcidade=rs.getString("cidade");}
Isso é o básico do básico utilizando JDBC (repare que a consulta tá feita para o banco mysql, teria que modificar pro firebird). Se vai usar algum framework ou outra coisa fica um pouco mais complicado. Teria que ver algo mais específico aí!
Falou!
valquiriamatter
Bom... Dei uma ajeitada no código aqui e consegui...
Tenho 2 métodos... Um que consulta todos os estados, e um que consulta as cidades apartir do estado selecionado...
Mas a dúvida agora é : Eu só posso consultar as cidades depois de selecionar o estado... E ai... quando e onde chamar o método de consultar a cidade ?
Método de Consultar os Estados
privatevoidconsultaTodosEstadosBancoBox(){//limpa o box inteiro para nao ficar repetido, pois sempre consulta todo o bancocbUf.removeAllItems();cbUf.addItem("");//retorna tudo do banco de estadosEstadoDaodao=newEstadoDao();List<Estado>lista=dao.consultarTodosEstados();//navega na lista de estados retornado do bancoIterator<Estado>it=lista.iterator();while(it.hasNext()){Estadoe=it.next();Stringestados=e.getUf();cbUf.addItem(estados);}}
Método que consulta as cidades
privatevoidconsultaTodosCidadesUfBancoBox(){//limpa o box inteiro para nao ficar repetido, pois sempre consulta todo o bancocbCidade.removeAllItems();cbCidade.setSelectedItem("");CidadeDaodao=newCidadeDao();Stringuf=retornaUfSelecionado();intcodigo=dao.consultarCodigoCidadeUf(uf);List<Cidade>lista=dao.consultarTodasCidadesUf(codigo);//navega na lista de cidades retornado do bancoIterator<Cidade>it=lista.iterator();while(it.hasNext()){Cidadec=it.next();Stringcidades=c.getNome();cbCidade.addItem(cidades);}}
Desde já agradeço...
valquiriamatter
Alguém me ajuda ???
Obrigada
L
lordcarlos
Se você está fazendo uma aplicação Desktop usando Swing, você precisará criar um ActionListener para o combobox do estado.
//.... no construtor da classecbUf.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){// quando for selecionado algum item de cbUf sera executado esse metodoconsultaTodosCidadesUfBancoBox();}
espero ter ajudado
valquiriamatter
Ajudou sim…
Obrigada…
Mas ainda não deu certo…
Faço tudo aquele código dentro do construtor ?
Pq não deu certo…
Valew
Abdon
Ola,
Nãolinenhumalinhadestetopico,batendooolhoreparei:
ResultSetrs=stm.executeQuery("SELECT * FROM cidade WHERE estado == 'SC' ");
Em SQL não se compara utilizando ‘==’ apenas use ‘=’.
Talvez seje este o seu erro. Aliais, qual erro vc esta tento?
valquiriamatter
O meu problema está em onde e quando chamar o método de consultar as cidades.
O que devo fazer ?
Lembrando que só posso chama-lo depois da uf selecionada.
Desde já agradeço… :shock:
L
lordcarlos
valquiriamatter
Bom, você não precisa colocar esse código necessariamente no construtor da classe, mas tem que ser depois que vc instancia o objeto cbUf.
o código no método actionPerformed é executado toda vez que um item no JComboBox é selecionado, assim deveria executar seu método quando vc seleciona um estado.
Vc está usando algum editor para a interface gráfica do programa ou codificando na unha?
valquiriamatter
Bom, eu estou usando NetBeans 6.0, e desenhe as telas pela interface. :shock:
jgbt
Bom, a usa duvida ja foi respondida nos posts acima, mas vou tentar juntar as peças p/ vc.
A primeira pergunta que vc deve fazer é: "em que momento eu quero carregar o combo de cidades?".
Supondo que sua resposta seja: "no exato momento que eu selecionar um estado no combo de estados", podemos entender que eu preciso de um "evento" no combo de estados, para assim que um valor for selecionado eu dispare algum codigo para preencher o combo cidades.
Sendo assim vamos la:
usando o editor visual do NB, nos teriamos;
1 - clique com o botão direito do mouse no combo estados e selecione eventos -> actionPerformed.
2 - vai ser criado um "listener" que sera disparo quando algum valor for selecionado no combo, e vai abrir o editor de codigo com um metodo.
3 - dentro desse metodo, vc pega o valor selecionado no combo estado e faz a pesquisa de cidades de acordo com o estado selecionado.
4 - pega o valor resultante dessa pesquisa e popula o combo de cidades.
entendeu?
outra coisa, uma lida no link passado no posta acima, vai te ajudar bastante.
[]´s
valquiriamatter
Valew galera pela ajuda...
Agora intendi o que eu tenho que fazer...
Mas... dá um erro (Expected) na última chave... O que ainda está errado ?
O método consultaTodosCidadesUfBancoBox()
privatevoidconsultaTodosCidadesUfBancoBox(){//limpa o box inteiro para nao ficar repetido, pois sempre consulta todo o bancocbCidade.removeAllItems();cbCidade.setSelectedItem("");CidadeDaodao=newCidadeDao();Stringuf=retornaUfSelecionado();intcodigo=dao.consultarCodigoCidadeUf(uf);List<Cidade>lista=dao.consultarTodasCidadesUf(codigo);//navega na lista de cidades retornado do bancoIterator<Cidade>it=lista.iterator();while(it.hasNext()){Cidadec=it.next();Stringcidades=c.getNome();cbCidade.addItem(cidades);}}