Problema com actionevent em jdialog (resolvido)

0 respostas
B

ola , sou iniciante na programação em java e peço desculpas por qualquer erro primario de utilização da linguagem... caso isso aconteça e alguem possa me dar dicas fico grato!!!

criei dentro de uma classe um metodo que gera um jdialog com um jcombobox e dois botões (confirma e cancela)

public void tela_localiza(){  
		       
	 JPanel jPPrincipal_pesquisa ;
		     JPanel  barrasuperior, barrainferior, jPmensagens;
		     JPanel jPbotoes;
		     JLabel jLCabecalho,jLRotMensagem, jLMensagem, jLSituacao1;
		  
		     	     
	 		
	 		   
		     localiza.getContentPane().setLayout(new BorderLayout( ));
	         localiza.getContentPane( ).setBackground(new Color(255,140,0)); 
	         localiza.setSize(new Dimension(375,230));
	         centraliza(localiza);
	         localiza.setResizable(false);
     
	         
	         barrasuperior = new JPanel(new BorderLayout());
	   	     barrasuperior.setBackground(new Color(108,166,205));
	       

	   	    jLCabecalho = new JLabel("Alterar dados de:");
	   	     jLCabecalho.setToolTipText("Alterar dados de:");
	   	     jLCabecalho.setFont(new Font("Verdana",Font.PLAIN,28));
	   	     
	   	     barrasuperior.add(jLCabecalho,BorderLayout.WEST);
	   	     localiza.getContentPane().add(barrasuperior,BorderLayout.NORTH);
	   	     
	   	     barrainferior = new JPanel(new BorderLayout());

	   	     jPmensagens = new JPanel(new BorderLayout());
	   	     jPmensagens.setBackground(new Color(108,166,205));
	   	     jLRotMensagem = new JLabel();
	   	     jLRotMensagem.setFont(new Font("Verdana",Font.PLAIN,12));
	   	     ImageIcon alerta    = new ImageIcon("D:/Meus documentos/eclipse/Fontes/DataCena/imagens/alert.gif");
	   	     jLRotMensagem.setIcon( alerta );
	   	     jPmensagens.add(jLRotMensagem,BorderLayout.WEST);
	   	     jLMensagem = new JLabel("Escolha uma das opções disponíveis abaixo.");
	   	     jLMensagem.setFont(new Font("Verdana",Font.PLAIN,10));
	   	     jLMensagem.setForeground( new Color(139,54,38) );
	   	     jPmensagens.add(jLMensagem,BorderLayout.CENTER);

	   	     barrainferior.add(jPmensagens,BorderLayout.NORTH);
	   	     
	   	     jPbotoes   = new JPanel(new FlowLayout());
	   	     btConfirma_pesquisa = new JButton("Confirma");
	   	     btCancela_pesquisa = new JButton("Cancela");
	   	     
	   	     btCancela_pesquisa.addActionListener(new ActionListener() {  
	             public void actionPerformed(ActionEvent e) {  
	                 localiza.dispose();  
	             }  
	        });  
	   	     
	   	  btConfirma_pesquisa.addActionListener(new ActionListener() {  
	             public void actionPerformed(ActionEvent e) {  
	            	
	            	 if (jcNomeLocaliza.getSelectedItem()== null)
	 				{
	 					JOptionPane.showMessageDialog(null,"Selecione Discente e atividade!!!");
	 				}
	 				else{
	 					String nome = (String)jcNomeLocaliza.getSelectedItem();
	 					
	 					jcNomeDiscente.removeAllItems();
	 					jcNomeDiscente.addItem(nome);
	 					 atualizaCampos();
	 	    		     abilitaCampos();
	 		 		     btSalvar.setEnabled(false);
	 		 		     btAlterar.setVisible(false);
	 		 		     btAtualizar.setVisible(true);
	 		 		     btAtualizar.setText("A Defender");
	 		 		     localiza.setVisible(false);
	 		 		    
	 		 		  
	 		 		}
	 			
	             }  
	        });  

	   	     jPbotoes.add(btConfirma_pesquisa);
	   	     jPbotoes.add(btCancela_pesquisa);
	   	 
	   	     barrainferior.add(jPbotoes,BorderLayout.SOUTH);
	   	     localiza.getContentPane().add(barrainferior,BorderLayout.SOUTH);
	   	     
	   	     jPPrincipal_pesquisa  = new JPanel();
			 jPPrincipal_pesquisa.setLayout(null);
			 jPPrincipal_pesquisa.setBackground(new Color(185,211,238));
			    
			 	
			 	carregaComboNome_Localiza();
			 	jLNomeLocaliza.setBounds(30, 30, 150, 23);
			    jLNomeLocaliza.setFont(f2);
			    jPPrincipal_pesquisa.add(jLNomeLocaliza);
			    
			    jcNomeLocaliza.setBounds(30, 50, 300, 23);
			    jcNomeLocaliza.setFont(f2);
			    jPPrincipal_pesquisa.add(jcNomeLocaliza);
			    jcNomeLocaliza.addActionListener(new ActionListener() {  
		             public void actionPerformed(ActionEvent e) {
		            	 
		            	 try 
		   		 	  {
		   		 	  	 rs = MeuState.executeQuery("SELECT Cadastroid, Nome FROM Cadastro WHERE Nome = '" + jcNomeLocaliza.getSelectedItem() + "'"); 
		   		 	  	 rs = MeuState.getResultSet();
		   		 	  	    while (rs.next())
		   		 	  	 	     	{
		   		 	  	 	  	 	 Cadastroid  = rs.getInt("CadastroId");
		   		 	  	 
		   		 	  	 	  	 	 }
		   		 	  	 	  	   	      
		   		 	  } 
		   		 	  	catch(SQLException ex)
		   		 	      	{
		   		 	      	  System.out.println("Problemas na conexao com a fonte de dados");
		   		 	       	}   
		   		 	    	     
		   		 	   try 
		   			 	  {
		   			 	  	 rs = MeuState.executeQuery("SELECT Situacao FROM Atividades " +
		   			 	  	 		"INNER join Mestrado on Atividades.Atividadeid = Mestrado.AtividadeId " +
		   			 	  	 		"WHERE CadastroId = " + Cadastroid+ ""); 
		   			 	  	 rs = MeuState.getResultSet();
		   			 	  	    while (rs.next())
		   			 	  	 	     	{
		   			 	  	    			Situacao = rs.getString("Situacao");
		   			 	  	    			 jLSituacao2.setText(Situacao);
		   			 	  	 	  	 	 }
		   			 	  	 	  	   	      
		   			 	  } 
		   			 	  	catch(SQLException ex)
		   			 	      	{
		   			 	      	  System.out.println("Problemas na conexao com a tabela Atividades");
		   			 	       	}  
		            	
		            	 		             }  
		        });
			    
			    jLSituacao1 = new JLabel("Situação:");
			    jLSituacao1.setBounds(30, 80, 100, 23);
			    jLSituacao1.setFont(f1);
			    jPPrincipal_pesquisa.add(jLSituacao1);
			    

			   jLSituacao2 = new JLabel();
			    jLSituacao2.setBounds(110, 80, 100, 23);
			    jLSituacao2.setFont(f1);
			   jPPrincipal_pesquisa.add(jLSituacao2);
			    
			    
			    

	                 
			 localiza.getContentPane().add(jPPrincipal_pesquisa,BorderLayout.CENTER);
			 
			Image Ico;
		    Ico = Toolkit.getDefaultToolkit( ).getImage("imagens/nuclear.jpg");
		    localiza.setIconImage(Ico);
		    localiza.setTitle("Finalizar Mestrado");
	        localiza.setModal(true);  
	        //tela_localiza.pack();  
	        localiza.setVisible(true);
	                
	    }

essa tela abre sobre um jframe quando eu aciono um determinado botão que chama esse metodo.

quando eu altero o nome no jcombobox do meu jdialog .......ele tem um actionevent que atualiza algumas variaveis ...... após isso eu confirmo ou cancelo a minha escolha.... fechando a tela (tela.dispose()).
até ai tudo bem..

o probelama é que ... quando eu chamo essa tela pela segunda vez (sem ter fechado o meu jFrame) o actionevent do jcombobox não funciona, ou seja, ele não atualiza a minha variavel.

para ele voltar funcionar eu preciso fechar o meu jframe e abrir novamente.... assim ele funciona por mais uma vez.

se alguem puder me ajudar .... agradeço

valew :lol:

Criado 19 de outubro de 2007
Respostas 0
Participantes 1