java - para - ¿No se puede agregar un componente Swing a varios contenedores?
pasos para crear un componente en java (4)
Como has descubierto, no puedes compartir componentes. Sin embargo, hay otros enfoques que puede usar.
En el caso de un JButtons puede compartir una Acción:
JButton button1 = new JButton (someAction); JButton button2 = new JButton (someAction);
Lea la sección del tutorial de Swing sobre Cómo usar acciones para obtener más información.
En otros casos, es posible que desee compartir el modelo:
DefaultTableModel model = new DefaultTableModel( ... );
JTable table1 = new JTable( model );
JTable table2 = new JTable( model );
La solución depende de tu requerimiento.
Estoy intentando (probando algo más) agregar una referencia JButton
en dos JPanels
para probarla, ¡y desaparece del primer panel al que se agregó!
Entonces, ¿no se puede agregar un componente Swing a múltiples contenedores?
Gracias de antemano.
De: http://download.oracle.com/javase/tutorial/uiswing/components/toplevel.html :
Cada componente de la GUI puede estar contenido solo una vez. Si un componente ya está en un contenedor e intenta agregarlo a otro contenedor, el componente se eliminará del primer contenedor y luego se agregará al segundo.
No creo que eso sea posible. Lo que puede hacer es tener múltiples componentes que comparten el mismo controlador de eventos. SO básicamente, en su caso, declare dos botones y use el mismo método de controlador de eventos.
Resuelto
Verificando en la sección http://download.oracle.com/javase/tutorial/uiswing/components/toplevel.html del Java Tutorial, dice.
Cada componente de la GUI puede estar contenido solo una vez. Si un componente ya está en un contenedor e intenta agregarlo a otro contenedor, el componente se eliminará del primer contenedor y luego se agregará al segundo.