Pergunta

Atualmente, estou tentando construir um painel de expansão no Swing (semelhante controle Expander do WPF) e eu gostaria de manter os métodos usuais para manipulá-lo (i. E. setLayout, add, etc.). Só que eles devem ser encaminhados para um painel incorporado (o que está sendo mostrado ou oculto).

Como alguém faria isso? Substituindo cada método de JComponent e re-encaminhamento que a um JPanel incorporado seria complicado, mas essa é a única maneira que eu vejo.

Ou devo sim fazer o painel incorporado visível para os usuários externos e de força para usar algo como ExpanderPanel.getInnerPanel() vez. Mas então não é substituto para JPanel que eu acho que seria bom ter.

Foi útil?

Solução

Em 1,5 (ish) Balanço encaminhado alguns métodos para o painel de conteúdo em JFrame, JApplet, etc. Enquanto parecia haver alguns benefícios de usabilidade para quem está começando, ele realmente não corrigir o problema. Então, todo mundo tem que lidar com uma API muito estranhamente comportando. Portanto, meu conselho é evitar esta abordagem.

Outras dicas

Dê uma olhada no JXTaskPane de SwingX projeto. Ele já faz o que você precisa.

Se você tem um widget recipiente que contém um painel que pretende mostrar e esconder, por que não layout do seu painel interno como quiser, em seguida, adicioná-lo ao painel do recipiente, em seguida, usar métodos estáticos contra o recipiente para dizer

JPanel p = new JPanel (); // fazer algo com o JPanel ...

ContainerWidget.setContent (p);

ContainerWidget.expandPanel (p, true);

Será que somethign como este trabalho?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top