Fórum Componente de pesquisa #13850

11/01/2010

0

Ola pessoal Gostaria de saber como faço para personalizar um componente de texto em swing
para que fique semelhante ao exibido na figura com o texo file filter? Este componente deve
ser exibido no lado superior do formulário no lugar do JTextField
padrão do Swing. Infelismente não consegui capturar a imagem mas o componente
com o texo file filter exibe um menu suspenso com várias opções de pesquisa quando
clico sobre ele, semelhante ao componente de pesquisa apresentado no canto
superior direito do netBeans de um Ctrl + I para acessá-lo. E quando clico no x no lado direito do componente searchField o texto digitado desaparece.
 
Israel Barbosa

Israel Barbosa

Responder

Posts

11/01/2010

Henrique Weissmann

Oi Israel, bom: vamos por partes. Pra começar, sugiro que você dê uma lida neste artigo: "Adding Auto Completition to Swing ComboBoxes" http://today.java.net/pub/a/today/2007/07/19/adding-auto-completion-to-swing-comboboxes.html O que deve ser executado é o seguinte: no evento keyListener do seu componente, conforme o usuário for digitando o texto, deve ser feita uma busca na base de dados. Esta busca, por sua vez, deve retornar um único campo como resultado. Este único campo deverá alimentar um objeto do tipo List, que, por sua vez, deverá alimentar o conteúdo do seu JComboBox.
Responder

Gostei + 0

11/01/2010

Israel Barbosa

Codigo responsavel pela inicialização dos componentes entre eles o de autoCompletar De uma forma simples este código esta executando o autoCompletar da forma correta. Estou utilizando GlazedLists. Vc quer que eu te evie codigo completo do exemplo? private void initComponents(){ titleLable = new JLabel("Autores:"); autorTable = new ZebraJTable(); autorTable.setModel(TableModels.createAutorTableModel(autorManagerModel.getAutorSelection())); autorTable.setSelectionModel(new SingleListSelectionAdapter(autorManagerModel.getAutorSelection().getSelectionIndexHolder())); ///******************************* List elements = autorManagerModel.getAutorSelection().getList();// This list is synchronized with database. searchComponent = new JComboBox(); AutoCompleteSupport support = AutoCompleteSupport.install(searchComponent, GlazedLists.eventListOf(elements.toArray())); //******************************** newButton = new JButton(autorManagerModel.getNewAction()); editButton = new JButton(autorManagerModel.getEditAction()); removeButton = new JButton(autorManagerModel.getRemoveAction()); }
Responder

Gostei + 0

18/01/2010

Israel Barbosa

Ola Henrique, preciso saber como esta o ondamento do chamado?
Responder

Gostei + 0

19/01/2010

Henrique Weissmann

Oi Israel, me desculpe pela demora na resposta ok? Bom: não estou conseguindo entender agora qual o problema se o código está funcionando ok. Como posso lhe ajudar daqui pra frente? Quais os pontos nos quais está encontrando dificuldades?
Responder

Gostei + 0

19/01/2010

Israel Barbosa

Eu precisava saber como faço para que apareça tipo um menu suspenso para uma opção de pesquisa ou por id, ou qualquer outro campo da tabela semelhante ao componente de pesquisa do netbeans citado anteriormente. E tambem fazer com que apareça um icone dentro do componente. 
Responder

Gostei + 0

19/01/2010

Israel Barbosa

Eu precisava saber como faço para que apareça tipo um menu suspenso para uma opção de pesquisa ou por id, ou qualquer outro campo da tabela semelhante ao componente de pesquisa do netbeans citado anteriormente. E tambem fazer com que apareça um icone dentro do componente. 
Responder

Gostei + 0

19/01/2010

Henrique Weissmann

Oi Israel, como assim "um ícone dentro do componente"? Com relação ao menu suspenso, bem: o próprio JComboBox é, na realidade, um menu suspenso com as opções necessárias, não?
Responder

Gostei + 0

20/01/2010

Israel Barbosa

Vou ver se consigo capturar uma imagem para exemplicar mehor.
Responder

Gostei + 0

21/01/2010

Israel Barbosa

Bom dia Henrique Vou especificar melhor o que eu gostaria de fazer: 1 - Observe primeiramente que a seta do componente encontra-se
do lado direito, o oposto ao modo de exibição padrão do
componente e possui um icone de uma lupa o que simboliza
uma pesquisa como na imagem a
seguir:   Note que a impressão que se tem é que o icone parace estar inserido no componente de pesquisa   2 - Observe agora que quando clicko na seta é apresentado uma
espécie de menu suspenso contendo várias opções como:
 - Todas categorias
 - Ações
 - Ir para tipo
 - Opções
 - Repositórios Maven
 - Ajuda  3 - Note que quando uma das opções é selecionada ela fica marcada
com uma bolinha e aparece escrito no componente
pesquisar em + opção selecionada. 4 - Quando realizo uma pesquisa a filtragem ocorre somente pela
opção que foi selecionada. Duvida:
Como proceder para obeter-se o mesmo resultado visual do
componente apresentado, ou seja quais são as etapas para
sua customização? Basicamente consigo fazer aparecer um menu suspenso como na
figura a seguir:   no entanto não consigo colocar um icone para personalizar o
componente. E tambem gostaria que o menu suspenso
aparece não quando o componente ganha o foco e sim quando
o icone é clikado. Sabendo que o NetBeans foi desenvolvido em swing deve
haver uma maneira para isto.      
Responder

Gostei + 0

28/01/2010

Dyego Carmo

Opa ,vou tentar elaborar algo aqui e te passo , soh vou precisar de um pouco de tempo OK ? Já desenvolvi componentes com Swing , porem não neste estilo... vou dar uma olhadinha !!!
Responder

Gostei + 0

29/01/2010

Israel Barbosa

Não tem problema, Fico no aguardo.
Responder

Gostei + 0

08/02/2010

Israel Barbosa

E então Dyego. Vc conseguiu elaborar algo
Responder

Gostei + 0

09/02/2010

Israel Barbosa

Ola!   Dyego a mesma pergunta deste chamado fiz para o Hugo Vidal Teixeira que ja publicou vários artigos na JavaMagazine e a respos ta que obtive foi a seguinte:  você deve criar uma classe que herda de JTextField e implementar aqueles detalhes. Você deve sobrescrever o método que pinta o componente para conseguir aquele efeito. O vc me diz a respeito? 
Responder

Gostei + 0

09/02/2010

Dyego Carmo

Na realidade estou fazendo um COMPOSITE COMPONENT...

Ou seja , um componente que é a composição de outros... assim fica mais facil de entender e o resultado final mais legal... e independente !

Guentae que já subo o componente por disco virtual !

Responder

Gostei + 0

09/02/2010

Israel Barbosa

Sem problemas, como disse não tenho pressa. Na verdade havia feito a mesma pergunta deste chamado ao Hugo Vidal Teixeira antes de abri-lo e somente agora que ele me respondeu.   Pela atenção muito obrigado!  
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar