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: