duvida sobre a JList [RESOLVIDO]  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
laurovitor
Entusiasta Java
[Avatar]

Membro desde: 25/08/2010 21:56:39
Mensagens: 20
Localização: Maringá-PR
Offline

ola.

estou tendo uma dificuldade aqui que a seguinte...



o meu sistema nao utiliza mouse so teclado e as teclas sao predefinidas... quando eu adiciono o JList na minha tela ele ganha o focu de tudo e os eventos do teclados para de responder.... se eu utilizo o setFocusable(false) o sistema roda belezinha porem o meu problema e o seguinte... eu queria utilizar duas teclas para mover entre os itens... tipo Q = sobe, W = desse.... eu setei pra que ele ele marcasse os itens pelo jList1.setSelectedIndex(i); isso tmb funciona mais a barra de rolagem nao vai junto tipo se tiver espaço para mostra apenas 5 e tiver 10 itens vc consegue mover entre ele mais vc sempre vai ficar vendo os 5 pq a barra de rolagem nao acompanha os itens.... eu queria saber se tem algum tipo de setFocus... ou next()... alguma coisa do tipo pra mover a barra de rolagem junto e sempre mnostrar o item selecionado.

This message was edited 1 time. Last update was at 04/12/2010 09:05:29


StudioWeb Maringá - O Melhor da web e na StudioWeb
http://www.studiowebmaringa.com.br
Contato: (Skype) lauro_vitor / (MSN) lauro_vitor@hotmail.com
email: laurovitor@studiowebmaringa.com.br / contato@studiowebmaringa.com.br

[WWW] [MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

http://www.guj.com.br/posts/list/92862.java#497384

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
entanglement
GUJ Hacker

Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline

entanglement
GUJ Hacker

Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline

Note que "setSelectedItem", conforme você deve ter percebido, não é a mesma coisa que mover com as setas.

Eu simplesmente copiei a mesma ação executada quando se usa a tecla de seta para cima para a tecla "q".

Exercício - Veja que se você teclar Q com a tecla Shift apertada não vai funcionar (não vai mover a seta). Por que isso ocorre?
entanglement
GUJ Hacker

Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline

Outra dica: em muitos componentes do Swing, adicionar um KeyListener simplesmente não funciona do jeito que você quer. Muitas vezes você precisa mexer no ActionMap/InputMap (como fiz agora), ou então, em campos de entrada de dados, mexer no Document. No caso de um JComboBox, a situação é mais complicada ainda, e é por isso que é um pouco difícil fazer um AutoComplete que funcione.

This message was edited 1 time. Last update was at 02/12/2010 22:00:53

entanglement
GUJ Hacker

Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline

Eu usei uma coisa que normalmente não recomendo, que é um DefaultListModel. Só fiz isso para simplificar o exemplo; normalmente eu usaria um ListModel baseado em um dos Models do GlazedLists ( http://publicobject.com/glazedlists )
laurovitor
Entusiasta Java
[Avatar]

Membro desde: 25/08/2010 21:56:39
Mensagens: 20
Localização: Maringá-PR
Offline

sim testei o codigo acima ele ate funciona porem eu nao posse deichar o JList com foco e ai q entra o problema...

o codigo tem q funcionar com o ....


em estado false.

StudioWeb Maringá - O Melhor da web e na StudioWeb
http://www.studiowebmaringa.com.br
Contato: (Skype) lauro_vitor / (MSN) lauro_vitor@hotmail.com
email: laurovitor@studiowebmaringa.com.br / contato@studiowebmaringa.com.br

[WWW] [MSN]
entanglement
GUJ Hacker

Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline

OK, não tinha visto que a JList não tinha foco. Então:
entanglement
GUJ Hacker

Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline

A janela em si tem de ter o foco (isso é porque janelas sem foco não recebem eventos de teclado). Mas o JList não precisa ter o foco.
entanglement
GUJ Hacker

Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline

Repare, ao rodar o exemplo, que o foco continua sempre no botão OK, mesmo que se tecle q ou w. Obviamente, se você teclar um espaço, vai ativar o botão OK, como esperado.
laurovitor
Entusiasta Java
[Avatar]

Membro desde: 25/08/2010 21:56:39
Mensagens: 20
Localização: Maringá-PR
Offline

ok vou implementar este exemplo no meu codigo pra ver se funciona pq eu testei esse exemplo q vc me passo e funciono certinho agora quero ver se vai funcionar no meu codigo...

StudioWeb Maringá - O Melhor da web e na StudioWeb
http://www.studiowebmaringa.com.br
Contato: (Skype) lauro_vitor / (MSN) lauro_vitor@hotmail.com
email: laurovitor@studiowebmaringa.com.br / contato@studiowebmaringa.com.br

[WWW] [MSN]
laurovitor
Entusiasta Java
[Avatar]

Membro desde: 25/08/2010 21:56:39
Mensagens: 20
Localização: Maringá-PR
Offline

Ok testei aqui deu certinho... muito obrigado pela ajuda.... e meio chato ser iniciante e ter q ficar perguntando... mais em breve espera poder estar ajudando os outros aki no forum tmb...

=]







so mais uma duvida tem alguma maneira de centralizar o texto da JList?

StudioWeb Maringá - O Melhor da web e na StudioWeb
http://www.studiowebmaringa.com.br
Contato: (Skype) lauro_vitor / (MSN) lauro_vitor@hotmail.com
email: laurovitor@studiowebmaringa.com.br / contato@studiowebmaringa.com.br

[WWW] [MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

No meu "technical debt" está, por exemplo, escrever no meu blog sobre todas as formas de não usar um KeyListener.
Até agora não escrevi, por exemplo, como é que se usa um "try with resources" com um java.sql.Connection.
Como vocês devem ter aprendido na marra, o comportamento de teclas com os componentes do Swing raramente pode ser customizado usando-se um mero KeyListener.


[WWW]
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team