Pessoal, eu to tendo algumas dificuldades com por listener na barra de rolagens. Vejam bem, meu intuito é fazer um overview (tipo o zoom do photoshop: na medida que o usuário arrastar o quadrado vermelho, as barras de rolagem irao se mover). O código ainda não tá pronto, como vcs podem notar. Mas a minha duvida é a seguinte: estou colocando o listerner nas barras horizontal e vertical, só que ele nao responde quando movo uma delas. Pus um teste para imprimir na linha de comando quando mover e nao deu em nada. Alguma coisa esta errada? Alguem tem idéia de como posso fazer para corrigir isso?
Outra dúvida, existe uma maneira mais prática de conseguir o ScrollPane da aplicação, sem tem que pegar de componente em componente [como pode ser observado na linha 7] ?
Grato.
public class OverRectangle extends RectangleFigure implements AdjustmentListener {
public OverRectangle(double x, double y, double width, double height) {
super(x, y, width, height);
initialize();
//scrollpane da aplicação
JScrollPane scroll = (JScrollPane)((JPanel)((JPanel)((JLayeredPane)((JRootPane)((JFrame)iTAOSApplication.getInstance().getFrame()).getComponent(0)).getComponent(1)).getComponent(0)).getComponent(0)).getComponent(0);
scroll.getHorizontalScrollBar().addAdjustmentListener(this);
scroll.getVerticalScrollBar().addAdjustmentListener(this);
}
public void initialize() {
setAttribute(AttributeKeys.STROKE_COLOR, new Color(0xFF0000));
setAttribute(AttributeKeys.STROKE_WIDTH, new Double(5));
setAttribute(AttributeKeys.FILL_COLOR, new Color(0x000000, true));
}
@Override
public void adjustmentValueChanged(AdjustmentEvent e) {
System.out.println("moveu");
}
}