Jtoolbar, jmenu =)

Description

c'est un code que j'ai trouvé ds un book, il est assez sympas et peut servir! servez vous de l'api pour comprendre certaines choses au cas ou :X

Source / Exemple :


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

public class CouleurTest
{
	public static void main(String[] args)
	{
		CouleurFrame frame = new CouleurFrame();//création de l'objet CouleurFrame
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //fermera la frame
		frame.show();//la rend visible
	}
}
class CouleurFrame extends JFrame
{
	public CouleurFrame()
	{
		setTitle("Couleur test");//titre
		setSize(300,200);//taille
		
		panel = new JPanel();//création d'un panel
		getContentPane().add(panel, BorderLayout.CENTER);//panel ajouté au container
		
		//création d'un nouvel objet (ColorAction)
		Action jauneAction = new ColorAction("jaune", new ImageIcon("jaune.gif"), Color.yellow); 
		Action vertAction = new ColorAction("vert", new ImageIcon("vert.gif"), Color.green);
		Action rougeAction = new ColorAction("rouge", new ImageIcon("rouge.gif"), Color.red);
		
		//Action du bouton
		Action quitAction = new AbstractAction("Quit", new ImageIcon("normal-smile.gif"))
		{
			public void actionPerformed(ActionEvent e)
			{
				System.exit(0);//ferme le programme "proprement"
			}
		};
		//ajoute juste une description 
		quitAction.putValue(Action.SHORT_DESCRIPTION, "Quit");
		//ajoute un libellé 
		JLabel lb = new JLabel("Hupi ça marche", SwingConstants.CENTER);
		panel.add(lb);//ajoute du libellé au panel
		JToolBar bar= new JToolBar("Faites votre choix"); //création d'un JToolBar avec titre
		//ajoute des actions au jtoolbar
		bar.add(jauneAction);
		bar.add(vertAction);
		
		bar.add(rougeAction);
		bar.addSeparator(); //met une séparation entre les options
		bar.add(quitAction);
		//ajoute le jtoolbar au container
		getContentPane().add(bar, BorderLayout.NORTH);
		
		//création d'un menu nommé Couleur
		JMenu menu = new JMenu("Couleur");
		//ajout des actions au menu
		menu.add(jauneAction);
		menu.add(vertAction);
		menu.add(rougeAction);
		menu.add(quitAction);
		//création du menubar (obligatoire pour un jmenu car le jmenu ne peut etre ajouté que à un jmenubar
		JMenuBar menuBar = new JMenuBar();
		menuBar.add(menu);
		//ajout du menubar au container (en quelques sortes)
		setJMenuBar(menuBar);
	}
	private JPanel panel; //champs d'instances de l'objet jpanel
	
	class ColorAction extends AbstractAction //définition de l'objet ColorAction qui hérite de la classe AbstractAction
	{
		public ColorAction(String n, Icon i, Color c) //constucteur de l'objet
		{  
		//méthode du package javax.swing.Action
			putValue(Action.NAME, n);
			putValue(Action.SMALL_ICON, i);
			putValue(Action.SHORT_DESCRIPTION, "La couleur est " + n);
			putValue("Couleur" ,c);
		}
		public void actionPerformed(ActionEvent e) //gestionnaire d'evts
		{
			Color c = (Color)getValue("Couleur"); //recupere la couleur
			panel.setBackground(c);//puis le panel met la couleur comme background
			panel.repaint();//repaint le panel (la couleur est mise à jour..)
		}
	}
}

Conclusion :


ne faites pas attention au fichier texte ;p (ds le zip pardi ) mdr a+

Codes Sources

A voir également

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.