Problema ao Minimizar InternalFrama

oi, pessoal

E o seguinte… eu tenho um JFrame, nele tem um DesktopPane onde eu taco os Internal Frames… mas como fazer ra trabalhar com + de 1 Internal ao mesmo tempo?

O problema e esse: eu abro 1 e minimizo ele, blz… ele vai pro rodape do Desktop, minimizado… ai abro outro, so que esse outro (por ocupar todo o Desktop, assim como o anterior) cobre a forma minimizao do outro, ai nao da pra ficar trocando entre janelas…

Alguem ai pode me ajudar?

[]s

F.L

  1. Redimensiona o internalframe ou o frame principal
  2. cria um menu suspenso com as janelas abertas
  3. transforma tudo em jframe :mrgreen:

flw!

Olá

Compila as 2 classes abaixo e executa java InternalFrameDemo

[code]import javax.swing.JInternalFrame;
import javax.swing.JDesktopPane;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;
import javax.swing.JFrame;
import javax.swing.KeyStroke;

import java.awt.event.;
import java.awt.
;

/*

  • InternalFrameDemo.java is a 1.4 application that requires:
  • MyInternalFrame.java
    */
    public class InternalFrameDemo extends JFrame
    implements ActionListener {
    JDesktopPane desktop;
public InternalFrameDemo() {
    super("InternalFrameDemo");

    //Make the big window be indented 50 pixels from each edge
    //of the screen.
    int inset = 50;
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    setBounds(inset, inset,
              screenSize.width  - inset*2,
              screenSize.height - inset*2);

    //Set up the GUI.
    desktop = new JDesktopPane(); //a specialized layered pane
    createFrame(); //create first "window"
    setContentPane(desktop);
    setJMenuBar(createMenuBar());

    //Make dragging a little faster but perhaps uglier.
    desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
}

protected JMenuBar createMenuBar() {
    JMenuBar menuBar = new JMenuBar();

    //Set up the lone menu.
    JMenu menu = new JMenu("Document");
    menu.setMnemonic(KeyEvent.VK_D);
    menuBar.add(menu);

    //Set up the first menu item.
    JMenuItem menuItem = new JMenuItem("New");
    menuItem.setMnemonic(KeyEvent.VK_N);
    menuItem.setAccelerator(KeyStroke.getKeyStroke(
            KeyEvent.VK_N, ActionEvent.ALT_MASK));
    menuItem.setActionCommand("new");
    menuItem.addActionListener(this);
    menu.add(menuItem);

    //Set up the second menu item.
    menuItem = new JMenuItem("Quit");
    menuItem.setMnemonic(KeyEvent.VK_Q);
    menuItem.setAccelerator(KeyStroke.getKeyStroke(
            KeyEvent.VK_Q, ActionEvent.ALT_MASK));
    menuItem.setActionCommand("quit");
    menuItem.addActionListener(this);
    menu.add(menuItem);

    return menuBar;
}

//React to menu selections.
public void actionPerformed(ActionEvent e) {
    if ("new".equals(e.getActionCommand())) { //new
        createFrame();
    } else { //quit
        quit();
    }
}

//Create a new internal frame.
protected void createFrame() {
    MyInternalFrame frame = new MyInternalFrame();
    frame.setVisible(true); //necessary as of 1.3
    desktop.add(frame);
    try {
        frame.setSelected(true);
    } catch (java.beans.PropertyVetoException e) {}
}

//Quit the application.
protected void quit() {
    System.exit(0);
}

/**
 * Create the GUI and show it.  For thread safety,
 * this method should be invoked from the
 * event-dispatching thread.
 */
private static void createAndShowGUI() {
    //Make sure we have nice window decorations.
    JFrame.setDefaultLookAndFeelDecorated(true);

    //Create and set up the window.
    InternalFrameDemo frame = new InternalFrameDemo();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    //Display the window.
    frame.setVisible(true);
}

public static void main(String[] args) {
    //Schedule a job for the event-dispatching thread:
    //creating and showing this application's GUI.
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            createAndShowGUI();
        }
    });
}

}
[/code]

[code]import javax.swing.JInternalFrame;

import java.awt.event.;
import java.awt.
;

/* Used by InternalFrameDemo.java. */
public class MyInternalFrame extends JInternalFrame {
static int openFrameCount = 0;
static final int xOffset = 30, yOffset = 30;

public MyInternalFrame() {
    super("Document #" + (++openFrameCount), 
          true, //resizable
          true, //closable
          true, //maximizable
          true);//iconifiable

    //...Create the GUI and put it in the window...

    //...Then set the window size or call pack...
    setSize(300,300);

    //Set the window's location.
    setLocation(xOffset*openFrameCount, yOffset*openFrameCount);
}

}
[/code]

[]s
Luca

po, cara, valeu…

mas nao resolve…

qdo eu maximizo um internal frame, ele ocupa todo o desktop e continua
tampando os que estao minimizados…

[]s

F.L