JFrame em Execução

6 respostas
rochribre

Como faço para verificar se um determinado JFrame está visivel na tela, ou como posso passar esse jframe visivel com parametro para outra classe.

6 Respostas

renzonuccitelli

para ver se ele está visível basta usar o método isVisible() da classe JFrame. Para passar como parâmetro não importa se ele está visível ou não. Vc passa como parâmetro da mesma forma que passa qualquer outro Objeto. Pode ser via construtor, via injeção de dependência e etc.

rochribre

Vamos supor que eu tenho um frame5 e um frame6 em execução e visivel, e quero gerar um código no frame5 que me fala se o frame6 está visivel. Poderia elaborar um função dessa para eu entender melhor.

Obrigado.

renzonuccitelli

Exemplo no qual nao me preocupei com Layout:

public class Frame extends JFrame {
	private JFrame frameAlvo;
	private JLabel labelMensagem;
	public Frame(final JFrame frameAlvo) throws HeadlessException {
		super("Testando");
		this.frameAlvo = frameAlvo;
		labelMensagem=new JLabel(""+frameAlvo.isVisible());
		this.add(labelMensagem,BorderLayout.NORTH);
		JButton botao=new JButton("Mostrar status");
		botao.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent e) {
				frameAlvo.setVisible(!frameAlvo.isVisible());
				labelMensagem.setText(""+frameAlvo.isVisible());
				
			}
			
		});
		botao.setMaximumSize(new Dimension(80, 20));
		this.add(botao,BorderLayout.CENTER);
	}
	
	public static void main(String[] args){
		JFrame frameAlvo=new JFrame("Alvo");
		frameAlvo.setSize(200,200);
		frameAlvo.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
		Frame frame=new Frame(frameAlvo);
		frame.setSize(200, 200);
		frame.setLocation(201, 0);
		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

Qdo vc preciona o botao ele informa o status da janela alvo, se ela está visivel (true) ou nao (false)

rochribre

Existe a possibilidade de voçe gerar a rotina para os botões da Janela1, um abre janela2 e o outro verifica se a janela 2 está visivel, levando em consideração que essas janelas foram feitas no netbeans manualmente.

Obridado.

renzonuccitelli

Com base no meu exemplo da pra vc fazer, basta adicionar outro botao com um novo Listener, é só vc ver o que fiz e procurar entender. Em particular, para entender o Listenster recomendo estudar o Pattern Observer do GoF.

rochribre

Consegui, entendi o seu código e gerei o meu.

Obrigado.

Criado 22 de janeiro de 2009
Ultima resposta 23 de jan. de 2009
Respostas 6
Participantes 2