JScrollPane + JPanel - Rolar Scroll em componente que recebeu foco [RESOLVIDO]

0 respostas
ferreira2006

Então … eu tinha um JPanel principal com JscollPane tendo somente a barra vertical ativada.
Tinha alguns outro JPanels inseridos no principal, alguns visiveis e outros não;
Pretendia mover o knob (scroll) ate o ponto no panel principal onde o panel invisivel se
tornasse visivel e recebesse foco.
Consegui achar alguma coisa sobre JTextArea, JTable movendo via código o knob,
porém para o JPanel a coisa tava braba, não tinha geito.
Quando ia apelar pro GUJ achei a resposta aqui

Basicamento isto:

// O panel que estava invisível ao receber foco executa o método scrollFoco(evt);
JPanelInvisivel.addFocusListener(new FocusAdapter() {
            public void focusGained(FocusEvent evt) {
                scrollFoco(evt);
            }
        });

// que por sua vez move o knob para onde eu queria
protected void scrollFoco(FocusEvent evt) {
	     Component componenteFocado = evt.getComponent();
	     fundo.scrollRectToVisible(componenteFocado.getBounds(null));
	     repaint();	
	}

Posto a solução no intuito de ajudar outros perdidos como eu.

Criado 24 de março de 2011
Respostas 0
Participantes 1