Utilisation d'un jdesktoppane

Soyez le premier à donner votre avis sur cette source.

Snippet vu 15 422 fois - Téléchargée 27 fois

Contenu du snippet

utilisation des fenetre MDi en JAVA grace a l'interface en swing

Source / Exemple :


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

class Quitter implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		System.exit(0);
	}
}

class Nouveau implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{	
		
		
		i++;
		FenetreSecondaire f = new FenetreSecondaire("Fenetre " + i);
		f.setLocation(x++,y++);
		FenetreConteneur.getInstance().add(f);
		
	}
	
	private int i = 0;
	private int x = 15;
	private int y = 30;
}

class barre extends JMenuBar
{
	public barre()
	{
	
		
	JMenuItem smnu1=new JMenuItem();
	JMenuItem smnu2=new JMenuItem();
	
	JMenu mnu1 = new JMenu();
	
		
	mnu1.setText("Fichier");
	smnu2.setText("Nouveau");
	smnu1.setText("Quitter");
	
	
	
	smnu1.addActionListener(new Quitter());
	smnu2.addActionListener(new Nouveau());
		
	mnu1.add(smnu1);	
	mnu1.add(smnu2);
		
	this.add(mnu1);
	
	this.setVisible(true);
	
	}
	
	
	
}

class FenetreConteneur extends JDesktopPane
{
	private FenetreConteneur()
	{
		int i=0;
		this.add(new FenetreSecondaire("Fenetre " + i));
		this.setVisible(true);
	}
	
	public static FenetreConteneur getInstance()
	{ 
		if(instance == null)
		instance = new FenetreConteneur();
		return instance;
	}
	
	
	private static FenetreConteneur instance = null;
}

class FenetrePrincipale extends JFrame
{
	public FenetrePrincipale()
	{
		this.setJMenuBar(new barre());
		this.getContentPane().add(FenetreConteneur.getInstance());
		this.setVisible(true);
		
	}
}

class FenetreSecondaire extends JInternalFrame
{
	public FenetreSecondaire(String titre)
	{
		this.setTitle(titre);
		this.setMaximizable(true);
		this.setClosable(true);
		this.setSize(200,150);
		this.setResizable(true);
		this.setVisible(true);
		
		
		JTextArea g = new JTextArea(50,30);
		g.setLineWrap(true);
		this.getContentPane().add(g);
	}
	
}

public class feuilleMDI
{
	public static void main(String arg[])
	{
		FenetrePrincipale f = new FenetrePrincipale();
		f.setSize(750,800);
	}
}

Conclusion :


www.softik.fr.St

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
jeudi 2 juillet 2009
Statut
Membre
Dernière intervention
17 décembre 2010

Je pense que ce code pourrait être plus court et tout aussi efficace. Aussi, dans le "main", la ligne "f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);" n'aurait pas été de trop.
Messages postés
23
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
23 octobre 2003

Merci pour ta réponse.
J'avais trouvé ce code aussi (super efficace d'ailleurs).
;o)
Messages postés
25
Date d'inscription
dimanche 29 décembre 2002
Statut
Membre
Dernière intervention
22 décembre 2010

Il semblerai que le JDesktopPane de base n'ait pas été prévu pour intégré un JScrollPane afin de resoudre ce probleme. Cependant il semblerai qu'en creeant un JDesktopManager le probleme pourrait etre réglé. Autrement j'ai trouvé ca si ca peut aider

http://www.javaworld.com/javaworld/jw-11-2001/jw-1130-jscroll.html
Messages postés
23
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
23 octobre 2003

Merci pour la source, ça m'a bien dépanné.
Juste une question : comment intégrer les barres de défilement dans le cas ou la JInternalFrame déborde le JDesktopPane ?
Messages postés
2
Date d'inscription
lundi 2 juin 2003
Statut
Membre
Dernière intervention
2 juin 2003

Tres bon code et bien clair.
Merci beaucoup.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.