# JInternalFrame manuell minimieren



## Marshallbbw (18. November 2005)

Hallo Leute,

ich suche nach einer Methodfe um ein JInternalFrame beim Start als erstes zu Minimieren. Leider funktioniert folgende Methode nicht "minimizeFrame()". Kann mir jemand helfen und erklären wie ich das bewerkstelligen kann. Wie gesagt ich wills minimieren und nicht unsichtbar machen.

Danke.


----------



## Marshallbbw (19. November 2005)

Ich habe mal ein Beispiel vorbereitet, um mein Problem zu verdeutlichen.


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

public class test extends JFrame
{
  private static ChildFrame myChildFrame = new ChildFrame("ChildFrame");

  public static void main(String args[])
  {
    MainFrame myMainFrame = new MainFrame();
    myMainFrame.setLocation(100, 100);
    myMainFrame.setSize(400, 400);
    myMainFrame.setVisible(true);
    myMainFrame.addChildFrame(myChildFrame, 50, 50, 300, 300);

    //myMainFrame.minimizeFrame(myChildFrame);
  }
}

class MainFrame extends JFrame
{
  private JDesktopPane myMainFrame;

  public MainFrame()
  {
    super("MainFrame");
    myMainFrame = new JDesktopPane();
    myMainFrame.setDesktopManager(new DefaultDesktopManager());
    setContentPane(myMainFrame);
  }

  public void addChildFrame(JInternalFrame myChildFrame, int x, int y, int w, int h)
  {
    myChildFrame.setLocation(x, y);
    myChildFrame.setSize(w, h);
    myChildFrame.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
    myChildFrame.setVisible(true);
    myMainFrame.add(myChildFrame);
  }
}

class ChildFrame extends JInternalFrame
{
  public ChildFrame(String title)
  {
    super(title, true, false);
    setIconifiable(true);
    setMaximizable(true);
  }
}
```

_myMainFrame.minimizeFrame(myChildFrame);_ funktioniert leider nicht. Ich möchte aber eine solche Funktion realisieren, um das ChildFrame beim Start bereits minimiert anzuzeigen oder diese Funktion mit Buttons oder Menüpunkte zu kombinieren.
Kann mir bitte jemand helfen?


----------



## elmato (19. November 2005)

das kannst du ganz leicht erreichen mit 

```
myChildFrame.setIcon(true);
```
mfg
elmato


----------



## Thomas Darimont (19. November 2005)

Hallo!

 Schau mal hier:

```
/**
  * 
  */
 package de.tutorials;
 
 import java.awt.Dimension;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.beans.PropertyVetoException;
 
 import javax.swing.JDesktopPane;
 import javax.swing.JFrame;
 import javax.swing.JInternalFrame;
 import javax.swing.Timer;
 
 /**
  * @author Tom
  * 
  */
 public class ManuallyMinimizeJInternalFrameExample extends JFrame {
 
 	public ManuallyMinimizeJInternalFrameExample() {
 		super("ManuallyMinimizeJInternalFrameExample");
 		setDefaultCloseOperation(EXIT_ON_CLOSE);
 
 		JDesktopPane desktopPane = new JDesktopPane();
 		desktopPane.setPreferredSize(new Dimension(400, 300));
 		final JInternalFrame internalFrame = new JInternalFrame("tutorials.de", true,
 				true, true, true);
 		internalFrame.setSize(320, 240);
 		internalFrame.setVisible(true);
 		desktopPane.add(internalFrame);
 
 		add(desktopPane);
 
 		Timer timer = new Timer(2000, new ActionListener() {
 			public void actionPerformed(ActionEvent e) {
 				if(internalFrame.isIcon()){
 					try {
 		    		    internalFrame.setIcon(false);
 		    		} catch (PropertyVetoException e1) {
 		    		    e1.printStackTrace();
 					}
 				}else{
 					try {
 		    		    internalFrame.setIcon(true);
 		    		} catch (PropertyVetoException e1) {
 		    		    e1.printStackTrace();
 					}
 				}
 			}
 		});
 		timer.setRepeats(true);
 		timer.setDelay(2000);
 		timer.start();
 
 		pack();
 		setVisible(true);
 	}
 
 	/**
 	 * @param args
 	 */
 	public static void main(String[] args) {
 		new ManuallyMinimizeJInternalFrameExample();
 	}
 }
```
 
 gruss Tom


----------



## Marshallbbw (19. November 2005)

Vielen vielen Dank - das war genau das Richtige.


----------

