Grazie per la risposta
l'evento si deve verificare quando la visibilita dell pannello diventa falsa
SetVisivle(false)
per spiegarlo in breve quando un pannello mi scompare ne deve apparire un altro.
io ho scritto questo ma non mi funziona
codice:
package prova;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.*;
public class Prova {
static pannello1 panel;
static pannello2 pa;
public static void main(String[] args)
{
frameprincipale f = new frameprincipale("prova");
Container c = f.getContentPane();
panel = new pannello1() {};
pa = new pannello2() {};
c.add(pa);
c.add(panel);
pa.setVisible(true);
f.addWindowListener(new Terminator());
panel.addComponentListener(new comp());
f.show();
}
static class comp implements ComponentListener
{
@Override
public void componentResized(ComponentEvent e) {
}
@Override
public void componentMoved(ComponentEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void componentShown(ComponentEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void componentHidden(ComponentEvent e)
{
pa.setVisible(true);
}
}
}
class frameprincipale extends JFrame
{
public frameprincipale()
{
super();
setBounds(300,200,800,600);
}
public frameprincipale(String titolo)
{
super(titolo);
setBounds(300,200,800,600);
}
}
abstract class pannello1 extends JPanel implements ActionListener
{
pulsante p;
public pannello1()
{
p = new pulsante("nascondi");
p.addActionListener(this);
add(p);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.red);
g.fillRect(20,20, 100,80);
}
public void actionPerformed(ActionEvent e)
{
this.setVisible(false);
}
}
abstract class pannello2 extends JPanel implements ActionListener
{
pulsante k;
public pannello2()
{
k = new pulsante ("visualizza");
k.addActionListener(this);
add(k);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.black);
g.fillRect(20,45, 100,80);
}
public void actionPerformed(ActionEvent e)
{
this.setVisible(false);
}
}
class pulsante extends JButton
{
public pulsante()
{
super();
setBounds(0,0,200,50);
}
public pulsante(String testo)
{
super(testo);
setBounds(0,0,200,50);
}
}
class Terminator implements WindowListener
{
public void windowClosed(WindowEvent e){}
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
@Override
public void windowOpened(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void windowIconified(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void windowDeiconified(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void windowActivated(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void windowDeactivated(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
ho postato tutto il codice , lo so che è un po troppo pero penso sia il modo migliore per farvi capire il mio problema