Ola Pessoal, 

        Estou com problemas para implementar um GlassPanel dentro de Internal
Frames:
1. O GlassPanel (no qual estou desenhando um circulo vermelho) nao aparece dentro do 
InternalFrame 
quando a janela em questao esta selecionada, somente quando seleciono/ativo outra 
janela eh que o 
glasspanel pode ser visualizado. Nao acredito que seja bug, pois o metodo paint do 
GlassPanel nao 
eh chamado quanto a janela encontrasse selecionada. Provavelmente eh algum setup 
necessario ao 
JDesktop, porem nao o encontrei nenhuma referencia na documentacao da sun. Por favo se 
alguem ja 
tiver encontrado alguma solucao para este problema me responda.


ps: seguem um exemplo que fiz com o problema. (desculpem o spawn na
lista)

Obrigado.


Luciano da Silva Ribas
----------------------------------------------------
LASD/CEFETPR - Laboratorio de Sistemas Distribuidos
TMN Project - Telecommunications Management Network
Fone: +55 41 3104763 and +55 41 3104763
Cellular: +55 41 9910750
email: [EMAIL PROTECTED]
----------------------------------------------------
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class Prototipo_hci extends JFrame {
    JDesktopPane desktop;

    public Prototipo_hci() {
        super("Prototipo HCI");

        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

        desktop = new JDesktopPane(); 
        setContentPane(desktop);
        setJMenuBar(createMenuBar());

        //desktop.putClientProperty("JDesktopPane.dragMode", "outline");
    }

    protected JMenuBar createMenuBar() {
        
                  JMenuBar menuBar;
        JMenu menu, submenu;
        JMenuItem menuItem;
        JCheckBoxMenuItem cbMenuItem;
                  JRadioButtonMenuItem rbmenuItem; 

        //Create the menu bar.
        menuBar = new JMenuBar();
        setJMenuBar(menuBar);
        
        //Build the first menu.
        menu = new JMenu("Edit");
        menu.setMnemonic(KeyEvent.VK_E);
        menu.getAccessibleContext().setAccessibleDescription( "Edit NE");
        menuBar.add(menu);
    
        //a group of JMenuItems
        menuItem = new JMenuItem("Copy", KeyEvent.VK_C);
        menuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_C, 
ActionEvent.CTRL_MASK));
        menuItem.getAccessibleContext().setAccessibleDescription( "Copy NE");
       // menuItem.addActionListener(this);
        menu.add(menuItem);
    
        menuItem = new JMenuItem("Paste", KeyEvent.VK_P);
        menuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_P, 
ActionEvent.CTRL_MASK));
        menuItem.getAccessibleContext().setAccessibleDescription( "Paste NE");
       // menuItem.addActionListener(this);
        menu.add(menuItem);
    
        menuItem = new JMenuItem("Insert", KeyEvent.VK_I);
        menuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_I, 
ActionEvent.CTRL_MASK));
        menuItem.getAccessibleContext().setAccessibleDescription( "Insert NE");

       //menuItem.addActionListener(this);
        menu.add(menuItem);
    
        menuItem = new JMenuItem("Delete", KeyEvent.VK_D);
        menuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_D, 
ActionEvent.CTRL_MASK));
        menuItem.getAccessibleContext().setAccessibleDescription( "Delete NE");
       //menuItem.addActionListener(this);
        menu.add(menuItem);
 
        menuBar.add(menu);


        //Build the first menu.
        menu = new JMenu("Config");
        menu.setMnemonic(KeyEvent.VK_E);
        menu.getAccessibleContext().setAccessibleDescription( "Config");
        menuBar.add(menu);
    
        //submenus para Look and Feel
        submenu = new JMenu("Look and Feel..");
        submenu.setMnemonic(KeyEvent.VK_L);

          ButtonGroup group = new ButtonGroup();

                rbmenuItem = new JRadioButtonMenuItem("MetalLookAndFeel");
                          rbmenuItem.setSelected(true);
                rbmenuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_E, 
ActionEvent.ALT_MASK));
                rbmenuItem.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                                                        try {
                                
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
                                                                        
SwingUtilities.updateComponentTreeUI(desktop.getRootPane());
                          } catch (Exception ex) { }
                    }   
                });
                          group.add(rbmenuItem);
                  submenu.add(rbmenuItem);

                rbmenuItem = new JRadioButtonMenuItem("MotifLookAndFeel");
                rbmenuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_M, 
ActionEvent.ALT_MASK));
                rbmenuItem.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                                                        try {
                                
UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
                                                                        
SwingUtilities.updateComponentTreeUI(desktop.getRootPane());
                          } catch (Exception ex) { }
                    }   
                });
                          group.add(rbmenuItem);
                  submenu.add(rbmenuItem);

                     rbmenuItem = new JRadioButtonMenuItem("WindowsLookAndFeel");
                rbmenuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_W, 
ActionEvent.ALT_MASK));
                rbmenuItem.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                                                        try {
                                
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
                                                                        
SwingUtilities.updateComponentTreeUI(desktop.getRootPane());
                          } catch (Exception ex) { }
                    }   
                });
                          group.add(rbmenuItem);
                  submenu.add(rbmenuItem);

                     rbmenuItem = new JRadioButtonMenuItem("MacLookAndFeel");
                rbmenuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_A, 
ActionEvent.ALT_MASK));
                rbmenuItem.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                                                        try {
                                
UIManager.setLookAndFeel("javax.swing.plaf.mac.MacLookAndFeel");
                                                                        
SwingUtilities.updateComponentTreeUI(desktop.getRootPane());
                          } catch (Exception ex) { }
                    }   
                });
                          group.add(rbmenuItem);
                  submenu.add(rbmenuItem);

        menu.add(submenu);

        menuItem = new JMenuItem("Language..", KeyEvent.VK_A);
        menuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_A, 
ActionEvent.ALT_MASK));
        menuItem.getAccessibleContext().setAccessibleDescription( "Language");
       // menuItem.addActionListener(this);
        menu.add(menuItem);
    
        menuItem = new JMenuItem("Layers..", KeyEvent.VK_I);
        menuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_I, 
ActionEvent.ALT_MASK));
        menuItem.getAccessibleContext().setAccessibleDescription( "Layers");
       //menuItem.addActionListener(this);
        menu.add(menuItem);
    
        menuBar.add(menu);


        //Build the first menu.
        menu = new JMenu("View [clique aqui]");
        menu.setMnemonic(KeyEvent.VK_V);
        menu.getAccessibleContext().setAccessibleDescription( "View [clique aqui]");
        menuBar.add(menu);
    
        //a group of JMenuItems
        menuItem = new JMenuItem("Map", KeyEvent.VK_M);
        menuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_M, 
ActionEvent.CTRL_MASK));
        menuItem.getAccessibleContext().setAccessibleDescription( "Maps.");
/*        menuItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                createMapFrame();
            }
        });*/
        menu.add(menuItem);
    
        //a group of JMenuItems
        menuItem = new JMenuItem("Alarms [clique aqui]", KeyEvent.VK_L);
        menuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_L, 
ActionEvent.CTRL_MASK));
        menuItem.getAccessibleContext().setAccessibleDescription( "Alarms..  [clique 
aqui]");
        menuItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                createAlarmFrame();
            }
        });
        menu.add(menuItem);
    
        menuItem = new JMenuItem("NE", KeyEvent.VK_N);
        menuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_N, 
ActionEvent.CTRL_MASK));
        menuItem.getAccessibleContext().setAccessibleDescription( "NE");
       // menuItem.addActionListener(this);
        menu.add(menuItem);
    
        menuBar.add(menu);

        return menuBar;
    }


    protected void createAlarmFrame() {
        AlarmInternalFrame frame = new AlarmInternalFrame();
                  frame.setVisible(true); 
        desktop.add(frame);
        try {
              frame.setSelected(true);
        } catch (java.beans.PropertyVetoException e) {}
    }


    public static void main(String[] args) {
        Prototipo_hci frame = new Prototipo_hci();
                  frame.pack();
                  frame.setSize(600,600);
        frame.setVisible(true);
    }
}
import javax.swing.*;
import javax.swing.event.MouseInputAdapter;
import java.awt.*;
import java.awt.event.*;


class NetworkMapGlassPane extends JComponent {

    public NetworkMapGlassPane(JInternalFrame internalframe) {
//        CBListener listener = new CBListener( this, internalframe);
//        addMouseListener(listener);
//        addMouseMotionListener(listener);
   }

    public void paint(Graphics g) {
                      System.out.println(" paint  NetworkMapGlassPane! -->" + 
this.getName());
            g.setColor(Color.red);
            g.fillOval(10, 10, 50, 50);
    }   
 
}

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

public class AlarmInternalFrame extends JInternalFrame {
         static private NetworkMapGlassPane NetGlassPane;
    static int openFrameCount = 0;
    static final int xOffset = 30, yOffset = 30;

    boolean debug = true;

    public AlarmInternalFrame() {
      super("Alarm View #" + (++openFrameCount), true, true, true, true);

      setSize(300,300);
                setVisible(true);
      setLocation(xOffset*openFrameCount, yOffset*openFrameCount);
       
                NetGlassPane = new NetworkMapGlassPane(this);
                NetGlassPane.setName("NetGlassPane #"+openFrameCount);
      this.setGlassPane(NetGlassPane);
                NetGlassPane.setOpaque(false);
                NetGlassPane.setVisible(true);
}

/*  nao eh necessario
 public void paintComponent(Graphics g) {
                NetGlassPane.paint(g);
        }*/

}

Responder a