cibersoft Posted April 21, 2012 at 06:14 PM Report #450434 Posted April 21, 2012 at 06:14 PM Boa tarde, Estou a desenvolver uma aplicação com recurso a uma BD em MySql, e estou a preencher 3 comobox assim que a aplicação carrega, ou seja, 1ª combo Carrega com o form onload, 2ª Carrega conforme os dados que a primeira lhe passa, ou seja, serve de filtro a primeira para que possa carregar os dados correctos. 3ª carrega como a primeira. O Meu problema é: A primeira e a terceira carregam bem quando a aplicação carrega, mas como vou buscar a base de dados os dados relativos ao carregamento da segunda? EX: 1ª Portugal, Espanha etc o que eu gostava de saber era se eu seleccionar Portugal a segunda combo carregar os dados relativos a PT, e se eu mudar para Espanha a segunda combo Actualizar com os dados de Espanha e assim sucessivamente. Podem Ajudar? Obrigado
M6 Posted April 21, 2012 at 06:16 PM Report #450435 Posted April 21, 2012 at 06:16 PM Colocas um handler para o evento de troca de item escolhido na combo. Lês qual é o novo item escolhido e usas essa informação para fazer a query à bd e populas a segunda combo com os valores obtidos. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
cibersoft Posted April 21, 2012 at 06:28 PM Author Report #450436 Posted April 21, 2012 at 06:28 PM Obrigado pela info, o que eu estava a utilizar era um event, actionperformed se não me engano. Podes me indicar o sitio onde posso ver um exemplo ou alguma explicação? Muito Obrigado.
cibersoft Posted April 21, 2012 at 07:05 PM Author Report #450441 Posted April 21, 2012 at 07:05 PM Algo com isto? combo.addActionListener (new ActionListener () { public void actionPerformed(ActionEvent e) { doSomething();
joelbrito Posted April 22, 2012 at 01:18 AM Report #450471 Posted April 22, 2012 at 01:18 AM Exprimenta assim: combo.addActionListener(new ActionListener () { public void itemStateChanged(ActionEvent e) { if(evt.getStateChange() == ItemEvent.SELECTED){ doSomething(); } } } Engenharia de Sistemas Informáticos @ IPCA "Estou convencido de que cerca de metade do que separa os empreendedores de sucesso daqueles malsucedidos é a pura perseverança." - Steve Jobs
cibersoft Posted April 22, 2012 at 04:34 PM Author Report #450538 Posted April 22, 2012 at 04:34 PM Obrigado a todos pela ajuda, o problema está parcialmente resolvido, isto porque estou a chamar o método que enche a combo 1 duas vezes, e isso faz com que repita o primeiro valor da combo, de resto tudo funciona, mas eu queria só chamar uma vez o método que enche a combo. Alguma ideia? o meu método: public void fillDrop() { try { st = conn.createStatement(); st.executeQuery("select DS from Paises"); rs = st.getResultSet(); while (rs.next()){ cbx.addItem(rs.getString("DS")); } rs.close(); st.close(); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } } É carregado no form onload e depois para funcionar é chamado também no event. Assim funciona mas com o primeiro valor repetido. Obrigado
joelbrito Posted April 22, 2012 at 07:13 PM Report #450572 Posted April 22, 2012 at 07:13 PM Não percebi muito bem qual é o problema desta vez.... Então é o seguinte: A 1ª e a 3ª combobox são populadas diretamente com os valores da base de dados. Ao seleccionar um item da combobox 1 a 2º combobox é populada com base no item selecionado na 1ª. O problema agora é que sempre que selecionas um novo item na combobox 1, a 2ª combobox fica com os items que já tinha e acrescenta os item referentes ao que foi selecionado. É este o problema? Se for, a cada vez que é selecionado um item da combobox 1, vais ter que limpar todos os items que estão na combobox 2 antes de a popular com os novos valores. cbx.removeAllItems(); Engenharia de Sistemas Informáticos @ IPCA "Estou convencido de que cerca de metade do que separa os empreendedores de sucesso daqueles malsucedidos é a pura perseverança." - Steve Jobs
cibersoft Posted April 23, 2012 at 09:45 AM Author Report #450671 Posted April 23, 2012 at 09:45 AM Boas, não é esse o contratempo, isso eu já fiz para a segunda drop, mas obrigado pelo exemplo.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now