Existe una interface que actúa cuando existe una modificación del estado de ventana sea cual sea (aumentar, minimizar, maximizar, cerrar…). WindowStateListener y recibe por parámetro el método WindowStateChanged(Windowevent e). Este método actuará cuando exista una modificación del estado de nuestra ventana.
Windowevent tiene dos métodos:
getNewState(): Obtener nuevo estado.
getOldState():Obtener anterior estado.
En el siguiente ejercicio vamos a
hacer dos marcos, le incluiremos dos botones y un texto, cuando realicemos una
acción de venta (cerrar, abrir, maximizar…) nos saltara un mensaje avisando de
que hemos realizado una modificación en nuestra ventana.
import javax.swing.*;
import java.awt.*;
import
java.awt.event.*;
public class
practica_frame6 {
public static void main (String[] arg) {
Marco_100 Marco_1 = new Marco_100();
Marco_100 Marco_2 = new Marco_100();
Marco_1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Marco_2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
Marco_1.setVisible(true);
Marco_2.setVisible(true);
Marco_1.setBounds(100,300,400,300);
Marco_2.setBounds(500,300,400,300);
}
}
class Marco_100
extends JFrame{
public Marco_100() {
ModificaEstado cambio = new
ModificaEstado();
Lamina10 l1 = new Lamina10();
add(l1);
addWindowStateListener(cambio);
setVisible(true);
}
}
class Lamina10
extends JPanel{
public void paintComponent(Graphics g) {
super.paintComponent(g);
JButton cerrar = new JButton("CERRAR");
JButton open = new JButton("open");
Font Arial = new Font("Arial",Font.BOLD,20);
add(cerrar); add(open);
setBackground(Color.blue);
g.setFont(Arial);
g.setColor(Color.WHITE);
g.drawString("texto
1", 100, 100);
}
}
__________________________________________________________________
///////cuando
hagamos algo con nuestra venta ejecutara esto//////
__________________________________________________________________
class ModificaEstado
implements WindowStateListener {
public void windowStateChanged(WindowEvent e) {
JOptionPane.showMessageDialog(null,"VENTANA MODIFICADA");
}
}
No hay comentarios:
Publicar un comentario