[Resolvido] Como ComponentUI pode acessar métodos de um Componente

Boa tarde pessoal,

Essa eu acho que é molezinha pra vocês !!!

Criei a classe MinhaTabbedPane que estende a classe JTabbedPane.
Criei a classe MinhaTabbedPaneUI que estende BasicTabbedPaneUI.

A classe MinhaTabbedPane utiliza os recursos gráficos de MinhaTabbedPaneUI

como demonstrado no construtor abaixo:


   public MinhaTabbedPane() {
        super();

        setUI(new MinhaTabbedPaneUI());
this.setDoubleBuffered(true);
        createPopupMenu();

        addMouseListener(new MouseAdapter() {

            @Override
            public void mouseReleased(MouseEvent mouseEvent) {
                MinhaTabbedPane.this.mouseReleased(mouseEvent);
            }
        });
    }

Dependendo de alguns valores setados em uma instancia de MinhaTabbedPane, a instancia de MinhaTabbedPaneUI desenhará “coisas” diferentes no seu objeto de trabalho.

A pergunta é: Como o objeto UI pode acessar as propriedades do objeto que ele está desenhando?

Agradeço desde já pela ajuda!

Consegui a resposta.
Ao depurar o código dentro de BasicTabbedPaneUI (faz parte da API Java) verifiquei que a mesma possui um campo (variável) chamado tabPane.
Segue um exemplo de como podemos acessar:


  @Override
    protected void installDefaults() {
        super.installDefaults();

       // Aqui faço um switch pegando a tabPane
        switch (super.tabPane.getTabPlacement()) {
            case TOP:
           // algum código
              break;
            case BOTTOM:
          // algum código
                break;
            case RIGHT:
           // algum código
                break;
            case LEFT:
          // algum código
                break;

        }
    }

Acredito que para outros tipos de componentes deve haver algum campo semelhante.
Obrigado pela atenção!