FocusTransversalPolicy

2 respostas
vtr88

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:

estJan.setNextFocusableComponent(getEstFev());

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?

2 Respostas

R

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...

public static class MyOwnFocusTraversalPolicy extends FocusTraversalPolicy
    {
        Vector<Component> 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);
        }
    }
R

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

Criado 29 de junho de 2012
Ultima resposta 29 de jun. de 2012
Respostas 2
Participantes 3