FocusTransversalPolicy

Tenho uma tela usando swing que é assim:

Janeiro — Julho
Fevereiro — Agosto
Março — Setembro
Etc…

no caso eu quero fazer o janeiro descer pro fevereiro pra só la embaixo subir pro julho:

  [code]estJan.setNextFocusableComponent(getEstFev());[/code]

o next focusable, apesar de depreciado ainda funciona e é o que estou usando, mas numa pequena pesquisa achei sobre o focus trans policy, mas não entendi como usalo.
como usa o ftpolicy e qual é o problema em deixar o programa funcionando com um metodo depreciado?

Problema eu usar métodos depreciados… NENHUM… mas você tem que ter ciência que o método só vai atender as classes e lógicas até a data que ele foi decreciado. E não vai haver mais melhorias e conserto de possíveis erros.


As classes de FocusTransversalPolicy tem mais ou menos essa cara…

[code]public static class MyOwnFocusTraversalPolicy extends FocusTraversalPolicy
{
Vector order;

    public MyOwnFocusTraversalPolicy(Vector<Component> order) {
        this.order = new Vector<Component>(order.size());
        this.order.addAll(order);
    }
    public Component getComponentAfter(Container focusCycleRoot, Component aComponent)
    {
        int idx = (order.indexOf(aComponent) + 1) % order.size();
        return order.get(idx);
    }

    public Component getComponentBefore(Container focusCycleRoot, Component aComponent)
    {
        int idx = order.indexOf(aComponent) - 1;
        if (idx < 0) {
            idx = order.size() - 1;
        }
        return order.get(idx);
    }

    public Component getDefaultComponent(Container focusCycleRoot) {
        return order.get(0);
    }

    public Component getLastComponent(Container focusCycleRoot) {
        return order.lastElement();
    }

    public Component getFirstComponent(Container focusCycleRoot) {
        return order.get(0);
    }
}[/code]

Em tese, métodos ou classes marcados como obsoletos (a clássica anotação @Deprecated) podem ser removidos de versões futuras da plataforma Java ou de outras bibliotecas, tais como o Hibernate. Mas, no caso específico da plataforma Java, a Sun/Oracle nunca quis correr o risco de causar problemas em programas antigos que dependessem de elementos que ficaram obsoletos depois, então nesse caso o risco de usar elementos obsoletos é quase nulo. Porém, fora das classes padrão da plataforma Java, usar elementos marcados obsoletos é uma prática que deve ser evitada.

Segue uma boa discussão sobre FocusTraversalPolicy:
http://docs.oracle.com/javase/tutorial/uiswing/misc/focus.html#customFocusTraversal