1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
| import java.awt.*;
import java.awt.event.* ;
import javax.swing.* ;
import javax.swing.event.* ;
class FenMenu100 extends JFrame implements ActionListener
{ static public final String[] nomCouleurs =
{"rouge", "vert", "jaune", "bleu"} ;
static public final Color[] couleurs =
{Color.red, Color.green, Color.yellow, Color.blue} ;
static public final String[] nomIcones =
{"images/rouge.gif", "images/vert.gif", "images/jaune.gif", "images/bleu.gif"} ;
public FenMenu100 ()
{ setTitle ("Figures avec Menus et barre d'outils") ;
setSize (450, 200) ;
Container contenu = getContentPane() ;
/* creation paneau pour les dessins */
pan = new Paneau100() ;
contenu.add(pan) ;
pan.setBackground(Color.cyan) ;
int nbCouleurs = nomCouleurs.length ;
/* creation des actions */
actions = new ActionCouleur3 [nbCouleurs] ;
for (int i=0 ; i<nbCouleurs ; i++)
{ actions[i] = new ActionCouleur3 (nomCouleurs[i], couleurs[i],
nomIcones[i], pan) ;
}
/* creation barre des menus */
barreMenus = new JMenuBar() ;
setJMenuBar(barreMenus) ;
/* creation menu Couleur et ses options */
couleur = new JMenu ("Couleur") ; couleur.setMnemonic('C') ;
barreMenus.add(couleur) ;
for (int i=0 ; i<nomCouleurs.length ; i++)
couleur.add(actions[i]) ;
/* creation menu surgissant Couleur et ses options */
couleurSurg = new JPopupMenu () ;
for (int i=0 ; i<nomCouleurs.length ; i++)
couleurSurg.add(actions[i]) ;
/* creation menu formes et ses options rectangle et ovale */
formes = new JMenu ("Formes") ; formes.setMnemonic('F') ;
barreMenus.add(formes) ;
rectangle = new JCheckBoxMenuItem ("Rectangle") ;
formes.add(rectangle) ;
rectangle.addActionListener (this) ;
ovale = new JCheckBoxMenuItem ("Ovale") ;
formes.add(ovale) ;
ovale.addActionListener (this) ;
/* affichage menu surgissant sur clic dans fenetre */
addMouseListener (new MouseAdapter ()
{ public void mouseReleased (MouseEvent e)
{ if (e.isPopupTrigger())
couleurSurg.show (e.getComponent(), e.getX(), e.getY()) ;
}
}) ;
/* creation menu Dimensions et ses options Hauteur et Largeur */
dimensions = new JMenu ("Dimensions") ; dimensions.setMnemonic('D') ;
barreMenus.add(dimensions) ;
largeur = new JMenuItem ("Largeur") ;
dimensions.add(largeur) ;
largeur.addActionListener (this) ;
hauteur = new JMenuItem ("Hauteur") ;
dimensions.add(hauteur) ;
hauteur.addActionListener (this) ;
/* creation barre d'outils couleurs */
/* (avec suppression textes associes et ajout de bulles d'aide */
barreCouleurs = new JToolBar () ;
for (int i=0 ; i<nomCouleurs.length ; i++)
{ JButton boutonCourant = barreCouleurs.add(actions[i]) ;
boutonCourant.setText(null) ;
boutonCourant.setToolTipText ((String)actions[i].getValue(Action.SHORT_DESCRIPTION)) ;
boutonCourant.setIcon((Icon) actions[i].getValue(Action.SMALL_ICON));
}
contenu.add(barreCouleurs, "North") ;
}
public void actionPerformed (ActionEvent e)
{ Object source = e.getSource() ;
if (source == largeur)
{ String ch = JOptionPane.showInputDialog (this, "Largeur") ;
pan.setLargeur (Integer.parseInt(ch)) ;
}
if (source == hauteur)
{ String ch = JOptionPane.showInputDialog (this, "Hauteur") ;
pan.setHauteur (Integer.parseInt(ch)) ;
}
if (source == ovale) pan.setOvale(ovale.isSelected()) ;
if (source == rectangle) pan.setRectangle(rectangle.isSelected()) ;
pan.repaint() ;
}
private JMenuBar barreMenus ;
private JMenu couleur, dimensions, formes ;
private JMenuItem [] itemCouleurs ;
private JMenuItem largeur, hauteur ;
private JCheckBoxMenuItem rectangle, ovale ;
private JPopupMenu couleurSurg ;
private ActionCouleur3 [] actions ;
private JToolBar barreCouleurs ;
private Paneau100 pan ;
} |
Partager