Pregunta

necesito para recoger un contenedor estándar (JPanel?) De oscilación que puedo usar como un marcador de posición para la cual puedo añadir otro componente a medida que se extiende JPanel:

JPanel containerPanel;
// built by a library from a text file, automatically part of a nice layout
MyPanel componentPanel; 
// something complicated that I can't integrate with the builder library

containerPanel = builder.getMyContainerPanel();
componentPanel = new MyPanel(...);
containerPanel.add(componentPanel);

¿Hay una manera de alguna manera acoplar los dos tamaños de panel de manera que el cambio de tamaño funciona correctamente? No estoy muy seguro de cómo cambiar el tamaño de las obras en marcha, pero lo que quiero es que el containerPanel exterior sea una envoltura delgada que está al servicio de mi componentPanel y los delegados panel exterior tanto como sea posible al panel interior.

No quiero hacer las cosas de esta manera, pero parece que la mejor manera de desvincular la biblioteca de mi constructor de componente personalizado.

¿Fue útil?

Solución

Me utilizar simplemente un GridLayout .

containerPanel.setLayout(new GridLayout(1, 1));

Esto tiene la ventaja de que sólo se puede añadir el panel secundario sin ningún parámetro y se garantiza a utilizar toda la zona:

containerPanel.add(componentPanel);

Otros consejos

Puede utilizar un BorderLayout y añadir su contenedor delegado en la posición BorderLayout.CENTER.

Hmm. Bueno, decidí volver a escribir mi componente, así que en vez de una clase que se extiende JPanel (herencia), que utiliza la composición y se construye con un JPanel vacías como un parámetro + añade componentes hijos a la JPanel. Así que se puede usar la biblioteca constructor para construir las JPanel vacías, a continuación, pasar más tarde que en el constructor de mi propio componente, por lo que ahora tengo 1 JPanel en lugar de dos de ellos que tengo que mantener acoplados entre sí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top