Hydr0xygen Posted December 13, 2009 at 12:09 PM Report Share #300134 Posted December 13, 2009 at 12:09 PM Olá 😉 nós em aplicações informáticas já demos as combo boxes mas só mesmo o básico que é adicionar os items às mesmas... Gostaria de saber se é possível fazer isto: o que queria era que à medida que mudasse a opção na combo box mudasse a imagem correspondente à mesma no rectângulo onde diz image... Já agora o projecto tá dividido em dois panéis, o da esquerda e o da direita... Abraço 😉 Link to comment Share on other sites More sharing options...
Knitter Posted December 13, 2009 at 12:21 PM Report Share #300136 Posted December 13, 2009 at 12:21 PM Sim é possível, verificar a documentação da classe JComboBox e vê os eventos. Dependendo de como queres fazer, existem vários eventos que podes usar. Tens de implementar o método que pegue no valor da caixa e que altere a imagem de acordo. www.sergiolopes.eu Link to comment Share on other sites More sharing options...
Hydr0xygen Posted December 13, 2009 at 01:47 PM Author Report Share #300143 Posted December 13, 2009 at 01:47 PM Sim é possível, verificar a documentação da classe JComboBox e vê os eventos. Dependendo de como queres fazer, existem vários eventos que podes usar. Tens de implementar o método que pegue no valor da caixa e que altere a imagem de acordo. qual é o método? já agora Knitter podes me esclarecer mais uma dúvida? Eu criei uma nova classe (adicionar) que é accionada através do menubar que permitisse adicionar um item à combobox.. sabes se isto é possivel ? Link to comment Share on other sites More sharing options...
Baderous Posted December 13, 2009 at 02:01 PM Report Share #300145 Posted December 13, 2009 at 02:01 PM http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html Link to comment Share on other sites More sharing options...
Knitter Posted December 13, 2009 at 03:33 PM Report Share #300157 Posted December 13, 2009 at 03:33 PM Eu criei uma nova classe (adicionar) que é accionada através do menubar que permitisse adicionar um item à combobox.. sabes se isto é possivel ? Não percebi a pergunta. Criaste uma classe que é accionada, como assim accionada? Para adicionar e remover elementos da caixa será mais simples usar um DefaultComboBoxModel como modelo da caixa e adicionar e remover elementos ao modelo. Quanto ao método, estava a referir-me ao evento que quiseres usar. Se usares o evento actionPerformed, então tens de implementar o método que faça a acção associada a esse evento. www.sergiolopes.eu Link to comment Share on other sites More sharing options...
Hydr0xygen Posted December 13, 2009 at 03:45 PM Author Report Share #300163 Posted December 13, 2009 at 03:45 PM boa tarde o que eu tenho até agora é isto O programa é: tenho a janela divida em dois panéis, o da esquerda e o da direita. O da esquerda tem uma combobox (ainda não criada) onde tem nomes de aviões. na esquerda à medida que eu escolho um avião da combo aparece a sua informação em textfields... tenho esta opção de adicionar os novos aviões e eu quero que ele actualize a combo box e os respectivos textfields. sei que é um pouco confuso :S De ínicio tenho na combo box 4 avioes... ao seleccionar 1 aparece nome, velocidade , capacidade e foto... esta info está no painel da direita dentro de textfields que irá permitir que eu altere a sua informação. Em baixo dos txt fields terei um botão para que já não seja possivel alterar o conteúdo dos txt fields acho que é um comando : disable qualquer coisa já não me lembro. Sendo que tenho esta info numa nova classe (das velocidades nomes etc) criei uma nova opção para adicionar um avião caso eu queira... ele adiciona o nome à combobox e à minha base de dados os dados do avião... é um pouco confuso e se calhar estou a confundir muito :x não me sei explicar muito bem... desculpem Link to comment Share on other sites More sharing options...
Knitter Posted December 13, 2009 at 05:47 PM Report Share #300181 Posted December 13, 2009 at 05:47 PM Como disse, para adicionar e remover elementos de uma combobox podes usar a classe DefaultComboBoxModel. Se definires o modelo da tua caixa com uma instância desta classe, podes adicionar e remover elementos da instância que automaticamente a caixa vai ser actualizada. Para que possas colocar as informações nos campos de texto quando se escolher um elemento da caixa tens de adicionar um actionListener e implementar o código da acção. Em princípio não será mais que ir ver qual é o valor seleccionado, pesquisar esse valor nos teus dados e apresentar as informações necessárias dentro dos campos de texto. Exemplo da utilização de combobox, retirei o código de um projecto que tinha aqui no IDE por isso não vai ter muita lógica já que tive de remover grande parte do código extra: private DefaultComboBoxModel cbmodel; cbmodel = new DefaultComboBoxModel(); jcbxGroup = new JComboBox(); //Instanciar a caixa jcbxGroup.addActionListener(/*colocar aqui a classe que implementa a interface ActionListener*/); jcbxGroup.setModel(cbmodel); //definir o modelo a usar //Adicionar elementos à caixa de selecção cbmodel.addElement(v);//ao adicionar elementos (e remover) ao modelo, a caixa é actualizada em conformidade automaticamente Podes usar uma classe anónima para implementar o evento actionListener, ex: jcbxGroup.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //código para actualizar os campos de texto //o atributo "e" possui alguns métodos úteis } }); Podes ver utilização de caixas de combinação em http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html www.sergiolopes.eu Link to comment Share on other sites More sharing options...
Hydr0xygen Posted December 13, 2009 at 06:02 PM Author Report Share #300183 Posted December 13, 2009 at 06:02 PM http://paste.org/pastebin/view/13013 tenho isto até agora mas estou a ter um problema: a informação não me está a aparecer dentro do textfield na sei porquê :S apenas o nome mesmo assim tá mal porque aparece Nome:Airbus dentro do txtfield quando quero que apareça apenas o Airbus :S já agora desculpa por ter mandado pm sobre o background, erro meu nao pesquisei 😕 Link to comment Share on other sites More sharing options...
Knitter Posted December 13, 2009 at 06:58 PM Report Share #300189 Posted December 13, 2009 at 06:58 PM O elemento que estás a introduzir dentro do modelo da caixa tem o método toString implementado? Uma JComboBox apenas sabe como representar texto e ícones, se colocares lá outro objecto é necessário que esse objecto é implemente o método toString com a representação de texto que é para aparecer. Se não for esse o caso, podes colocar a classe Aviao para ver como está? www.sergiolopes.eu Link to comment Share on other sites More sharing options...
F@bio Posted December 13, 2009 at 08:05 PM Report Share #300198 Posted December 13, 2009 at 08:05 PM Knitter já conseguimos por para a informação aparecer dentro das Textfields, mas nos queriamos que quando abrissemos o programa e na combobox está na opcçao ("Escolha um avião") aparecesse uma mesagem de aviso a dizer para escolher uma opcçao válida, mas queriamos que as textfields desaparecessem... .... desculpa o código tao extenso 😉 (provavelmente tem aí muito codigo desnecessario) Link to comment Share on other sites More sharing options...
Knitter Posted December 13, 2009 at 08:16 PM Report Share #300199 Posted December 13, 2009 at 08:16 PM Se precisarem de colocar mais código longo usem o pastbin, o P@P tem um em http://paste.portugal-a-programar.org Se querem isso no arranque da aplicação, basta criarem os campos escondidos inicialmente. Depois, alterem o método que trata do evento actionListener para contemplar esse vosso caso. Para esconder os elementos, na maior parte dos casos, um simples setVisible(false) resolve o problema. No entanto surge a pergunta: têm mesmo de esconder os campos? Não seria mais simples e mais útil para quem usa o programa ver os campos no local mas tendo os campos inactivos? Verifiquem a documentação da classe JComboBox, tem tudo o que precisam bem documentado. Atenção que os nomes de classes em Java começam com maiúscula e outra pergunta, porque é que criaram uma classe só para adicionar um elemento ao menu? Bem, tenho tentando não vos fazer o trabalho 😉, vejam a documentação com cuidado que muito do que precisam fazer está lá explicado, quer na documentação oficial das classes quer no tutorial que coloquei. www.sergiolopes.eu Link to comment Share on other sites More sharing options...
F@bio Posted December 13, 2009 at 08:22 PM Report Share #300200 Posted December 13, 2009 at 08:22 PM Knitter Obrigado pelo tempo dispendido 😉 Vamos ver o que conseguimos fazer, depois postamos o resultado. Cumpz Link to comment Share on other sites More sharing options...
F@bio Posted December 14, 2009 at 10:06 PM Report Share #300412 Posted December 14, 2009 at 10:06 PM Até agora temos isto: e queríamos que quando preenchêssemos os campos de um novo aviao este aparecesse na combobox. qual a maneira mais facil(se existir) de fazer isso? Cumpz Link to comment Share on other sites More sharing options...
Knitter Posted December 14, 2009 at 10:27 PM Report Share #300415 Posted December 14, 2009 at 10:27 PM Depende de como tiverem o projecto implementado, sem ver o projecto é um pouco às cegas, mas a ideia geral será, no botão "Adicionar à lista" colocar um evento do tipo actionPerformed, e no método desse evento adicionar o elemento que querem ao modelo da caixa. www.sergiolopes.eu Link to comment Share on other sites More sharing options...
F@bio Posted December 15, 2009 at 12:36 PM Report Share #300473 Posted December 15, 2009 at 12:36 PM O adicionar já funciona, mas agora é preciso que ele também carregue uma imagem, já pusemos um jfilechooser mas nao sabemos pô-lo a funcionar... :s Link to comment Share on other sites More sharing options...
Knitter Posted December 15, 2009 at 01:38 PM Report Share #300480 Posted December 15, 2009 at 01:38 PM O JFileChooser dá-vos o ficheiro que foi seleccionado, basta colocarem esse ficheiro como o ícone de uma JLabel. Não me lembro do código de cor mas creio que a classe ImageIcon tem um método que aceita um File, que vos é dado pelo método getSelectedFile do JFileChooser, se criarem um ImageIcon com esse ficheiro podem usar o método setIcon da JLabel para definir a imagem. Não sei se será necessário adaptar o ImageIcon a um Icon, mas a classe tem um método para fazer isso. www.sergiolopes.eu Link to comment Share on other sites More sharing options...
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