Sou novo no fórum, portando Olá a todos!
Estou tentando fazer um projeto utilizando swing + spring.
Então vamos lá:
tenho 3 classes
Aplicativo.java (static main)
FormPrincipal.java (JFrame)
NovoCliente.java (JDialog)
quero colocar o FormPrincipal e NovoCliente no arquivo de configuração do spring, portando ficou assim:
<bean id="aFormPrincipal"
		class="com.jose.view.FormPrincipal"
		scope="singleton">
		<constructor-arg ref="aSMController" />
</bean>
(o mesmo só mudando a classe e o id para o NovoCliente)
Para já setar como visible o jframe, coloquei isso:
<bean id="setVisible"
		class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
		<property name="targetObject">
			<ref local="aFormPrincipal" />
		</property>
		<property name="targetMethod">
			<value>setVisible</value>
		</property>
		<property name="arguments">
			<list>
				<value>true</value>
			</list>
		</property>
</bean>
no Aplicativo.java quando executo:
ClassPathXmlApplicationContext aContext = new ClassPathXmlApplicationContext("beans.xml");
BeanFactory aFactory = (BeanFactory) aContext;
aFactory.getBean("aFormPrincipal");
ele abre o jframe FormPrincipal legal…
Agora quero abrir dentro do FormPrincipal.java um jDialog quando uma determinada opção for escolhida, nesse caso poderia fazer da seguinte forma:
ClassPathXmlApplicationContext aContext = new ClassPathXmlApplicationContext("beans.xml");
BeanFactory aFactory = (BeanFactory) aContext;
NovoCliente aform = (NovoCliente) aFactory.getBean("aNovoCliente");
eu consigo receber em aform o objeto NovoCliente.
O problema é que eu quero receber o objeto que está no mesmo container que o aFormPrincipal, fazendo desse jeito, ao executar a linha ClassPathXmlApplicationContext aContext = new ClassPathXmlApplicationContext("beans.xml");
eu estou criando um novo contexto.
Alguem sabe como posso criar um container unico?
A razão de querer isso é que estou usando outra classe em comun que é passada no construtor do NovoCliente e FormPrincipal (omitido aqui). Essa classe é a controller do MVC, que deve ser a mesma para todos os views… portando não posso utilizar o controller de containers diferentes…
Obrigado antecipadamente!