Listener no scrollbar

5 respostas
P

Gostaria de saber por que quando é colocado um listener no scrollbar ele só ouve a barra central, as setinhas ele não ouve!!!
Como posso fazer para que ele ouça?, Não achei nenhum método que pegue esse evento do click na seta. Quando eu clico, ele não faz nada, ao contrário de quando eu clico em outra parte do scrollbar.
Alguém poderia me ajudar???
Obrigada!

5 Respostas

dukejeffrie

Minha cara patrícia, vamos com calma.
O que exatamente vc quer fazer? Descobrir se alguém mexeu no scrollbar? Ou vc precisa de mais do que isso? C quer saber se tá subindo ou descendo? Se é pra ir um só ou vários itens? Ouvir a ScrollBar é uma saída, mas provavelmente existem outras.

Eu sei que tem um esquema muito simples implementado na JScrollBar que é o AdjustmentListener:

// na JScrollBar:
addAdjustmentListener(AdjustmentListener l)

A classe mesmo é java.awt.event.AdjustmentListener. Não sei se resolve o seu problema. Explique melhor onde vc quer chegar… é bem provável que exista uma solução pra ele.

te+!

P

Olá!
A dúvida é a seguinte:
Eu consigo fazer com que o meu scrollbar ouça quando eu clico nele (quase todo), porque quando eu clico na setinha, para cima ou para baixo, ele não dá nenhum sinal de vida!!!.
O que eu achei estranho, é que se eu clico em qualquer outra parte do scrollbar, ele ouve, mas se eu clico na setinha não!

dukejeffrie

Legal… mas me conta seu objetivo maior… pra que vc quer saber quando o cara clica na setinha?? O que vc quer que o seu programa faça? Qual a esperteza que vc quer dar?

Eu chutaria que a setinha funciona mais ou menos como um botão que só manda eventos pro scrollbar. Vc tentou adaptar um AdjustmentListener pra ver o que ele imprime??

Abraços!!

P

Vou tentar fazer o q vc me escreveu…
O que eu quero fazer é:
Como o banco de dados que eu faço a pesquisa e jogo na minha tabela é muito grande, podendo gerar um resultado enorme, e quero que ele carregue o resultado aos poucos, de 200 em 200 por exemplo, pro sistema não carregar muito, é por isso que eu preciso do click da setinha!

dukejeffrie

Vc já viu como funciona o Acrobat Reader? É um exemplo meio ruim, pq não é muito claro como funciona, e ele tenta copiar o Word e acaba não funcionando direito.

Minha cara Patrícia, vc está brincando com fogo. Alterar o comportamento de coisas bem conhecidas pode deixar seu usuário muito desorientado. Além disso, o trabalho pra implementar algo assim é muito maior. Como disse em outra discussão aqui, pense como isso ia funcionar se desse certo. Imagine um usuário usando seu PowerScrollBar, quais ações ele poderia fazer, e se os efeitos são coerentes.

Veja como funciona a classe javax.swing.BoundedRangeModel pra vc ver onde vc tá se metendo: talvez valha mais implementar seu próprio widget!! Digo isso pq se vc quer fazer paginação (é isso que vc quer fazer, certo?), vc pode criar um componente que seja uma lista (com scrollbar) e mais dois botões, um em cima, um embaixo, que signifiquem “página anterior” e “página posterior”. Isso faz a navegação que vc deseja, com pouco trabalho a mais para o usuário.

Daí vc tem que imaginar uma forma de colocar isso como editor do seu componente (que provavelmente será um conjunto JLabel + JButton, mais ou menos como os ComboBoxes do HTML). Se vc achar uma boa idéia, eu posso colaborar com vc.

Se vc não gostou da minha idéia, olhe lá o BoundedRangeModel. Talvez fazendo uma subclasse dele vc consiga o comportamento que vc precisa sem correr atrás de cliques.

boa sorte!!

Criado 9 de dezembro de 2002
Ultima resposta 10 de dez. de 2002
Respostas 5
Participantes 2