Sie sind auf Seite 1von 6

package DeuxiemeEtapes;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Iterator;

import javax.swing.BorderFactory;
import javax.swing.*;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.border.BevelBorder;

public class MenuPrincipale extends JPanel implements MouseListener{


static final int CREATION_SOMMET = 1;
static final int DEBUT_DEPLACEMENT_SOMMET = 2;
static final int SUITE_DEPLACEMENT_SOMMET = 3;
static final int DEBUT_CREATION_ARETE = 4;
static final int SUITE_CREATION_ARETE = 5;
static final int TOUT_PRES = 10;
Sommet sommetSelectionne;
private static final long serialVersionUID = 2774505473204162225L;
/* Construction de l'interface graphique */
int etat;
JLabel barreEtat;

public MenuPrincipale() {
//Defint un titre pour notre fenetre
JFrame frame = new JFrame( "Interface graphique" );
frame.setBounds(100, 50, 600, 500);
// Definir sa taillle

barreEtat = new JLabel("Choisir une action");


barreEtat.setBorder(BorderFactory
.createBevelBorder(BevelBorder.LOWERED));
frame.add(this, BorderLayout.CENTER);
frame.add(barreEtat, BorderLayout.SOUTH);

//Terminer la processus lorsqu'on clique sur le croix rouge

frame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );

// Construction et injection de la barre de menu


frame.setJMenuBar( this.MenuBar() );
frame.addMouseListener(this);
frame.setVisible(true);
}
// Cette action permet de Quitter la fenetre lorsqu'on clique sur le sous
menu exit
static class CloseListerner implements ActionListener{

public void actionPerformed(ActionEvent e)


{
System.exit(0);
}
}

/* Methode de construction de la barre de menu */


JMenuBar MenuBar() {

// La barre de menu
JMenuBar menuBar = new JMenuBar();

// Definition du menu deroulant "File" et de son contenu


JMenu mnuFile = new JMenu( "Fichier" );

JMenuItem s = new JMenuItem( "Creer un sommet" );


s.setIcon( new ImageIcon( "icons/new.png" ) );

s.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
etat = CREATION_SOMMET;
rafraichirBarreEtat();
}
});
mnuFile.add(s);

JMenuItem Arete = new JMenuItem( "Creer un arret " );


Arete.setIcon( new ImageIcon( "icons/new.png" ) );
Arete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
etat = DEBUT_CREATION_ARETE;
rafraichirBarreEtat();
}
});

mnuFile.add(Arete);

mnuFile.addSeparator();

JMenuItem mnuOpenFile = new JMenuItem( "Changer L'arriere blanc ..."


);
mnuOpenFile.setIcon( new ImageIcon( "icons/open.png" ) );
mnuOpenFile.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
MenuPrincipale m = new MenuPrincipale();
if(e.getSource()==mnuOpenFile) {
JColorChooser colorChooser = new
JColorChooser();
Color color =
colorChooser.showDialog(null,"COLOR A CHOISIR", Color.black);

m.setBackground(color);

}}

);

mnuFile.add(mnuOpenFile);

JMenuItem mnuSaveFile = new JMenuItem( "Sauvegarder Fichier ..." );


mnuSaveFile.setIcon( new ImageIcon( "icons/save.png" ) );
mnuSaveFile.addActionListener( this::mnuNewListener );

mnuFile.add(mnuSaveFile);

JMenuItem mnuSaveFileAs = new JMenuItem( "Sauvegarder sous


Fichier ..." );
mnuSaveFileAs.setIcon( new ImageIcon( "icons/save_as.png" ) );
mnuSaveFileAs.addActionListener( this::mnuNewListener );

mnuFile.add(mnuSaveFileAs);

mnuFile.addSeparator();

JMenuItem mnuExit = new JMenuItem( "Quitter" );

mnuExit.setIcon( new ImageIcon( "icons/exit.png" ) );


mnuExit.addActionListener(new CloseListerner());

mnuFile.add(mnuExit);
menuBar.add(mnuFile);

// Definition du menu deroulant "Edit" et de son contenu


JMenu mnuEdit = new JMenu( "Editeur" );

JMenuItem mnuUndo = new JMenuItem( "Annuler" );


mnuUndo.setIcon( new ImageIcon( "icons/undo.png" ) );
mnuEdit.add(mnuUndo);

JMenuItem mnuRedo = new JMenuItem( "Repeter" );


mnuRedo.setIcon( new ImageIcon( "icons/redo.png" ) );
mnuEdit.add(mnuRedo);

mnuEdit.addSeparator();

JMenuItem mnuCopy = new JMenuItem( "Copier" );


mnuCopy.setIcon( new ImageIcon( "icons/copy.png" ) );
mnuEdit.add(mnuCopy);

JMenuItem mnuCut = new JMenuItem( "Couper" );


mnuCut.setIcon( new ImageIcon( "icons/cut.png" ) );
mnuEdit.add(mnuCut);

JMenuItem mnuPaste = new JMenuItem( "Coller" );


mnuPaste.setIcon( new ImageIcon( "icons/paste.png" ) );
mnuEdit.add(mnuPaste);

menuBar.add(mnuEdit);

// Definition du menu deroulant "Help" et de son contenu


JMenu mnuHelp = new JMenu( "Aide" );
menuBar.add( mnuHelp );

return menuBar;
}

void rafraichirBarreEtat() {
switch (etat) {
case CREATION_SOMMET:
barreEtat
.setText("Creation sommet : cliquer pour
designer l'endroit où le poser");
break;

case DEBUT_CREATION_ARETE:
barreEtat.setText("Création arête : désigner le premier
sommet");
break;
case SUITE_CREATION_ARETE:
barreEtat.setText("Création arête : désigner le second
sommet");
break;
}
}
public void mnuNewListener( ActionEvent event ) {
JOptionPane.showMessageDialog( this, "Pas encore !" );
}
Sommet sommetVoisin(int x, int y) {
Iterator<Sommet> iter = Sommet.iterator();
while (iter.hasNext()) {
Sommet s = iter.next();
if (Math.abs(x - s.getX()) + Math.abs(y - s.getY()) <
TOUT_PRES)
return s;
}
return null;
}

public void mousePressed(MouseEvent evt) {


Sommet sommet;
switch (etat) {

case CREATION_SOMMET:
new Sommet(evt.getX(), evt.getY());
repaint();
return;
case DEBUT_CREATION_ARETE:
sommetSelectionne = sommetVoisin(evt.getX(), evt.getY());
if (sommetSelectionne == null)
return;
etat = SUITE_CREATION_ARETE;
rafraichirBarreEtat();
return;
case SUITE_CREATION_ARETE:
sommet = sommetVoisin(evt.getX(), evt.getY());
if (sommet == null || sommet.equals(sommetSelectionne))
return;
new Arete(sommetSelectionne, sommet);
repaint();
etat = DEBUT_CREATION_ARETE;
rafraichirBarreEtat();
return;
}
}

public void mouseClicked(MouseEvent evt) {


}

public void mouseEntered(MouseEvent evt) {


}

public void mouseExited(MouseEvent evt) {


}

public void mouseReleased(MouseEvent evt) {


}

public void paint(Graphics g) {


super.paint(g);
Color cp = g.getColor();
Iterator<Arete> iterA = Arete.iterator();
while (iterA.hasNext()) {
Arete a = iterA.next();
g.drawLine(a.getOrig().getX()-6, a.getOrig().getY() -55,
a.getExtr()
.getX()-6, a.getExtr().getY()-55);
}
Iterator<Sommet> iter = Sommet.iterator();
while (iter.hasNext()) {
Sommet s = iter.next();
g.setColor(Color.red);
g.fillOval(s.getX() -10, s.getY()-60 , 10, 10);
}
g.setColor(cp);
}

public static void main(String[] args) {

new MenuPrincipale();

Das könnte Ihnen auch gefallen