Configurar evento

3 respostas
P

ola gostaria que testassem esse exemplo para melhor entender minha duvida.
pois neste exemplo ao alterar a cor do botao com as RadioButton vc pode clickar no botao ok ou fechar a janela para voltar a janela principal…

porem gostaria de que se fechasse a janela de alteracao de cor, a cor do botao deveria voltar a anterior,

exemplo:

abriu a janela de alteracao de cor;

alterou para azul;

clickou ok;

abriu a janela de alteracao de cor;

alterou para verde;

fechou a janela de alteracao de cor;

neste exemplo o botao deveria voltar a cor azul, assim que fechasse a janela.

a minha duvida é como configura o evento de fechar a janela?

no caso de botao usamos o

if(click.getSource() == ){

…

}

gostaria de saber oq devo escrever dentro do if(…) para poder dizer que a janela foi fechada?

pq aí faria desta forma:

if ("janela de alteração de cores foi fechada"){ cor.setBackground(corAtual); }

o exemplo que fiz é esse…
está funcionando normalmente até entao…

copiem e colem para testar e se puder me ajudar agradeco…

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JanelaCor implements ActionListener{
    
    JFrame janelaPrincipal = new JFrame();
    JFrame janelaOpcao = new JFrame();
    
    JPanel painelPrincipal = new JPanel();
    JPanel painelOpcao = new JPanel();
    
    JButton ok = new JButton("OK");
    JButton cor = new JButton("Cores");
    
    JRadioButton azul = new JRadioButton("Azul");
    JRadioButton verde = new JRadioButton("Verde");
    
    ButtonGroup cores = new ButtonGroup();
    
    Color corAtual = new Color(0,0,0);
    
    public JanelaCor(){
        
        janelaPrincipal.setSize(200,200);
        janelaPrincipal.setLocation(250,250);
        janelaPrincipal.setTitle("Teste");
        
        janelaPrincipal.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        painelPrincipal.setLayout(new GridLayout(1,1,2,2));
        painelPrincipal.add(cor);
        
        corAtual = painelPrincipal.getBackground();
        
        cores.add(azul);
        cores.add(verde);
        
        painelOpcao.setLayout(new GridLayout(3,1,10,10));
        
        painelOpcao.add(azul);
        painelOpcao.add(verde);
        painelOpcao.add(ok);
        
        
        janelaPrincipal.add(painelPrincipal);
        
        janelaPrincipal.setVisible(true);
        
        janelaOpcao.setSize(200,200);
        janelaOpcao.setTitle("Cores");
        janelaOpcao.setLocation(450,250);
        
        janelaOpcao.add(painelOpcao);
        
        cor.addActionListener(this);
        ok.addActionListener(this);
        azul.addActionListener(this);
        verde.addActionListener(this);
        cor.addActionListener(this);
        
    }
        
    public void actionPerformed(ActionEvent click){{
            
            if (click.getSource() == cor){
                janelaOpcao.setVisible(true);
		corAtual = cor.getBackground();
            }
            
            if (click.getSource() == azul){
                cor.setBackground(new Color(0,0,255));
            }
            else if (click.getSource() == verde){
                cor.setBackground(new Color(0,255,0));
            }
            
            if (click.getSource() == ok){
                janelaOpcao.setVisible(false);
            }
            
        }
    
}
    
    public static void main(String[] args){
        new JanelaCor();
    }
}

vlw :smiley:

3 Respostas

C
adicione
janelaOpcao.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                cor.setBackground(corAtual);
            }
        });
completo
package p240397;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JanelaCor implements ActionListener {

    JFrame janelaPrincipal = new JFrame();
    JFrame janelaOpcao = new JFrame();
    JPanel painelPrincipal = new JPanel();
    JPanel painelOpcao = new JPanel();
    JButton ok = new JButton("OK");
    JButton cor = new JButton("Cores");
    JRadioButton azul = new JRadioButton("Azul");
    JRadioButton verde = new JRadioButton("Verde");
    ButtonGroup cores = new ButtonGroup();
    Color corAtual = new Color(0, 0, 0);

    public JanelaCor() {

        janelaPrincipal.setSize(200, 200);
        janelaPrincipal.setLocation(250, 250);
        janelaPrincipal.setTitle("Teste");

        janelaPrincipal.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        painelPrincipal.setLayout(new GridLayout(1, 1, 2, 2));
        painelPrincipal.add(cor);

        corAtual = painelPrincipal.getBackground();

        cores.add(azul);
        cores.add(verde);

        painelOpcao.setLayout(new GridLayout(3, 1, 10, 10));

        painelOpcao.add(azul);
        painelOpcao.add(verde);
        painelOpcao.add(ok);


        janelaPrincipal.add(painelPrincipal);

        janelaPrincipal.setVisible(true);

        janelaOpcao.setSize(200, 200);
        janelaOpcao.setTitle("Cores");
        janelaOpcao.setLocation(450, 250);

        janelaOpcao.add(painelOpcao);

        janelaOpcao.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                cor.setBackground(corAtual);
            }
        });

        cor.addActionListener(this);
        ok.addActionListener(this);
        azul.addActionListener(this);
        verde.addActionListener(this);
        cor.addActionListener(this);

    }

    public void actionPerformed(ActionEvent click) {
        {

            if (click.getSource() == cor) {
                janelaOpcao.setVisible(true);
                corAtual = cor.getBackground();
            }

            if (click.getSource() == azul) {
                cor.setBackground(new Color(0, 0, 255));
            } else if (click.getSource() == verde) {
                cor.setBackground(new Color(0, 255, 0));
            }

            if (click.getSource() == ok) {
                janelaOpcao.setVisible(false);
            }

        }

    }

    public static void main(String[] args) {
        new JanelaCor();
    }
}
lina

Oi,

Você poderia verificar se a janela foi fechada por meio do método isShowing() ou isVisible().

Tchauzin!

P

muito obrigado…
me ajudou em muito… era exatamente oq qria saber…

agora posso terminar o programinha que estava fazendo… sem ser esse exemplo aí, é um outro…

vlw…

:lol:

Criado 30 de abril de 2011
Ultima resposta 2 de mai. de 2011
Respostas 3
Participantes 3