Criando um desktop virtual em sua aplicação

Saiba como criar um desktop virtual para sua aplicação.

Criando um desktop virtual em sua aplicação

Esta dica de Swing ilustra um método de usar o fundo de sua aplicação como um desktop virtual. Este código usa o JDesktopPane que é um recipiente (geralmente para JInternalFrames) que simula um desktop.  Tipicamente, o usuário criará JInternalFrames e  ira’ colocá-los em um JDesktopPane.  O usuário pode então interagir com o JInternalFrames como  geralmente faz com os JFrames.  As ações (minimize, maximize, próximo, etc.) são feitas usando um DesktopManager que esta’ associado com o JDesktopPane.

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

public class DesktopTest extends JFrame {
   public DesktopTest()
   {
      super"Usando um JDesktopPane" );

      JMenuBar bar = new JMenuBar();
      JMenu addMenu = new JMenu( "Add" );
      JMenuItem newFrame = new JMenuItem( "Frame Interno" );
      addMenu.add( newFrame );      
      bar.add( addMenu );
      setJMenuBar( bar );      

      final JDesktopPane theDesktop = new JDesktopPane();
      getContentPane().add( theDesktop );
    
      newFrame.addActionListener(
         new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
               JInternalFrame frame =
                  new JInternalFrame(
                     "Frame Interno",
                     true, true, true, true );

               Container c = frame.getContentPane();
               MyJPanel panel = new MyJPanel();

               c.add( panel, BorderLayout.CENTER );
               frame.setSize(
                  panel.getImageWidthHeight().width,
                  panel.getImageWidthHeight().height );
               frame.setOpaque( true );
               theDesktop.add( frame );
            }
         }
      );

      setSize( 500400 );
      show();
   }

   public static void main( String args[] )
   {     
      DesktopTest app = new DesktopTest();

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

class MyJPanel extends JPanel {
    private ImageIcon imgIcon;

    public MyJPanel()
    {
       imgIcon = new ImageIcon( "devmedia.gif" );
    }

    public void paintComponent( Graphics g )
    {
       imgIcon.paintIcon( this, g, 0);
    }

    public Dimension getImageWidthHeight()
    {
       return new Dimension( imgIcon.getIconWidth(),
                             imgIcon.getIconHeight() );  
    }
}

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados