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!