Skip to content

Instantly share code, notes, and snippets.

@tran-simon
Created April 8, 2018 17:35
Show Gist options
  • Save tran-simon/a7397c6c2cd405c2e2ac32af13c8bb2a to your computer and use it in GitHub Desktop.
Save tran-simon/a7397c6c2cd405c2e2ac32af13c8bb2a to your computer and use it in GitHub Desktop.
package window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.URL;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import java.awt.Font;
import java.awt.Image;
import java.awt.Rectangle;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JSeparator;
import javax.swing.border.LineBorder;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
import javax.swing.event.ChangeListener;
import aaplication.TestApp;
import controller.SimulationViewController;
import physics.PhysicsWorld;
import javax.swing.event.ChangeEvent;
import view.SimulationView;
/**
* Classe qui permet de créer l'interface principale
* @author Sofianne
*/
public class SpectrometreWindow extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private CyclotronWindow popupCyclotron;
private GraphiqueWindow popupGraphique;
private GuideUtilisationWindow popupGuideUtilisation;
private ConceptsScientifiquesWindow popupConceptsScientifiques;
private AProposWindow popupAPropos;
private EditorWindow popupEditorWindow;
private JButton btnJouer;
private JButton btnUnPas;
private JButton btnPause;
private JButton btnRecommencer;
private JButton btnParamtresAvancsDu;
private JMenu mnAffichage;
private JMenu mnEdition;
private JMenu mnFichier;
private JMenuItem mntmOuvrirModeCreation;
private JMenuItem mntmQuitter;
private JMenuItem mntmediterSpectrometre;
private JMenuItem mntmParametresCyclotron;
private JCheckBox chckbxPleinEcran;
private JMenuItem mntmGraphique;
private JMenu mnAide;
private JMenuItem mntmGuideDutilisation;
private JMenuItem mntmConceptsScientifiques;
private JMenuItem mntmAPropos;
private JPanel pnlBoutons;
private JLabel lblControles;
private JPanel pnlParametres;
private JSeparator separator;
private JSeparator separator_1;
private JSeparator separator_2;
private JLabel lblParticule;
private JLabel lblCyclotron;
private JLabel lblSelecteurDeVitesse;
private JLabel lblDeflecteur;
private JLabel lblMasse;
private JLabel lblCharge;
private JLabel lblVitesseDeSlection;
private JSpinner spnVitesseSelection;
private JCheckBox chckbxModifierDirectementLa;
private JLabel lblE;
private JLabel lblKg;
private JLabel lblC;
private JLabel lblMs;
private JLabel lblMs1;
private JLabel lblT;
private JLabel lblC1;
private JLabel lblChampMagntiqueSelecteur;
private JLabel lblChampElectrique;
private JSpinner spnChampMagnetique;
private JSpinner spnChampElectrique;
private JLabel lblT1;
private JPanel pnlVitesseSelection;
private JSpinner spnMasse;
private JSpinner spnCharge;
private JSpinner spnExpCharge;
private JSpinner spnExpMasse;
private JSpinner spnVitesseParticule;
private JSpinner spnChampMagnetiqueDeflecteur;
private JLabel lblResFrequenceCyclotron;
private JLabel lblResVitesseEntreeSelecteur;
private JLabel lblResVitesseSelection;
private JLabel lblResDiametreTrajectoire;
private JLabel lblResMasseDetectee;
private JMenuBar menuBar;
private SimulationViewController worldViewController;
private JPanel pnlSimulation;
/**
* Commandes qui créent l'interface
*/
public SpectrometreWindow() {
setTitle("Cyclotron et spectromètre de masse");
popupCyclotron = new CyclotronWindow();
popupGraphique = new GraphiqueWindow();
popupGuideUtilisation = new GuideUtilisationWindow();
popupConceptsScientifiques = new ConceptsScientifiquesWindow();
popupAPropos = new AProposWindow();
popupEditorWindow = new EditorWindow();
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 1387, 866);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
pnlBoutons = new JPanel();
pnlBoutons.setBorder(new LineBorder(new Color(0, 0, 0)));
pnlBoutons.setBounds(11, 0, 127, 522);
contentPane.add(pnlBoutons);
pnlBoutons.setLayout(null);
btnJouer = new JButton("Jouer");
btnJouer.addActionListener(new ActionListener() {
/**
* Écouteur sur le bouton Jouer
*/
public void actionPerformed(ActionEvent arg0) {
//debut
worldViewController.start();
//fin
}
});
btnJouer.setBounds(13, 53, 100, 100);
pnlBoutons.add(btnJouer);
associerBoutonAvecImage( btnJouer, "boutonJouer.jpeg" );
btnUnPas = new JButton("Un pas");
btnUnPas.setBounds(13, 169, 100, 100);
pnlBoutons.add(btnUnPas);
associerBoutonAvecImage( btnUnPas, "boutonUnPas.jpeg" );
btnPause = new JButton("Pause");
btnPause.setBounds(13, 285, 100, 100);
pnlBoutons.add(btnPause);
associerBoutonAvecImage( btnPause, "boutonPause.jpeg" );
btnRecommencer = new JButton("Recommencer");
btnRecommencer.setBounds(13, 401, 100, 100);
pnlBoutons.add(btnRecommencer);
associerBoutonAvecImage( btnRecommencer, "boutonRecommencer.jpeg" );
lblControles = new JLabel("Contrôles");
lblControles.setFont(new Font("Tahoma", Font.PLAIN, 21));
lblControles.setHorizontalAlignment(SwingConstants.CENTER);
lblControles.setBounds(7, 16, 113, 21);
pnlBoutons.add(lblControles);
pnlParametres = new JPanel();
pnlParametres.setBorder(new LineBorder(new Color(0, 0, 0)));
pnlParametres.setForeground(Color.BLACK);
pnlParametres.setBounds(10, 527, 1322, 246);
contentPane.add(pnlParametres);
pnlParametres.setLayout(null);
separator = new JSeparator();
separator.setForeground(Color.BLACK);
separator.setOrientation(SwingConstants.VERTICAL);
separator.setBounds(224, 15, 2, 215);
pnlParametres.add(separator);
separator_1 = new JSeparator();
separator_1.setOrientation(SwingConstants.VERTICAL);
separator_1.setForeground(Color.BLACK);
separator_1.setBounds(566, 15, 2, 215);
pnlParametres.add(separator_1);
separator_2 = new JSeparator();
separator_2.setOrientation(SwingConstants.VERTICAL);
separator_2.setForeground(Color.BLACK);
separator_2.setBounds(1013, 15, 2, 215);
pnlParametres.add(separator_2);
lblParticule = new JLabel("Particle");
lblParticule.setHorizontalAlignment(SwingConstants.CENTER);
lblParticule.setFont(new Font("Tahoma", Font.PLAIN, 17));
lblParticule.setBounds(27, 11, 155, 21);
pnlParametres.add(lblParticule);
lblCyclotron = new JLabel("Cyclotron");
lblCyclotron.setHorizontalAlignment(SwingConstants.CENTER);
lblCyclotron.setFont(new Font("Tahoma", Font.PLAIN, 17));
lblCyclotron.setBounds(248, 15, 155, 21);
pnlParametres.add(lblCyclotron);
lblSelecteurDeVitesse = new JLabel("Sélecteur de vitesse");
lblSelecteurDeVitesse.setHorizontalAlignment(SwingConstants.CENTER);
lblSelecteurDeVitesse.setFont(new Font("Tahoma", Font.PLAIN, 17));
lblSelecteurDeVitesse.setBounds(679, 11, 155, 21);
pnlParametres.add(lblSelecteurDeVitesse);
lblDeflecteur = new JLabel("Déflecteur");
lblDeflecteur.setHorizontalAlignment(SwingConstants.CENTER);
lblDeflecteur.setFont(new Font("Tahoma", Font.PLAIN, 17));
lblDeflecteur.setBounds(1071, 15, 155, 21);
pnlParametres.add(lblDeflecteur);
lblMasse = new JLabel("Masse");
lblMasse.setFont(new Font("Tahoma", Font.PLAIN, 15));
lblMasse.setBounds(10, 92, 57, 21);
pnlParametres.add(lblMasse);
lblCharge = new JLabel("Charge");
lblCharge.setFont(new Font("Tahoma", Font.PLAIN, 15));
lblCharge.setBounds(10, 155, 57, 21);
pnlParametres.add(lblCharge);
lblChampMagntiqueSelecteur = new JLabel("Champ magnétique");
lblChampMagntiqueSelecteur.setFont(new Font("Tahoma", Font.PLAIN, 15));
lblChampMagntiqueSelecteur.setBounds(603, 47, 142, 21);
pnlParametres.add(lblChampMagntiqueSelecteur);
lblChampElectrique = new JLabel("Champ électrique");
lblChampElectrique.setFont(new Font("Tahoma", Font.PLAIN, 15));
lblChampElectrique.setBounds(603, 83, 142, 21);
pnlParametres.add(lblChampElectrique);
pnlVitesseSelection = new JPanel();
pnlVitesseSelection.setBorder(new LineBorder(new Color(0, 0, 0)));
pnlVitesseSelection.setBounds(603, 120, 383, 110);
pnlParametres.add(pnlVitesseSelection);
pnlVitesseSelection.setLayout(null);
chckbxModifierDirectementLa = new JCheckBox("Modifier directement la vitesse de sélection");
chckbxModifierDirectementLa.addChangeListener(new ChangeListener() {
/**
* Ecouteur sur la case à cocher Modifier directement la vitesse de sélection
*/
public void stateChanged(ChangeEvent arg0) {
//debut
if (chckbxModifierDirectementLa.isSelected()) {
lblVitesseDeSlection.setEnabled(true);
spnVitesseSelection.setEnabled(true);
lblMs1.setEnabled(true);
lblChampMagntiqueSelecteur.setEnabled(false);
lblChampElectrique.setEnabled(false);
spnChampMagnetique.setEnabled(false);
spnChampElectrique.setEnabled(false);
lblC1.setEnabled(false);
lblT.setEnabled(false);
}else {
lblVitesseDeSlection.setEnabled(false);
spnVitesseSelection.setEnabled(false);
lblMs1.setEnabled(false);
lblChampMagntiqueSelecteur.setEnabled(true);
lblChampElectrique.setEnabled(true);
spnChampMagnetique.setEnabled(true);
spnChampElectrique.setEnabled(true);
lblC1.setEnabled(true);
lblT.setEnabled(true);
}
//fin
}
});
chckbxModifierDirectementLa.setFont(new Font("Tahoma", Font.PLAIN, 15));
chckbxModifierDirectementLa.setBounds(6, 22, 311, 23);
pnlVitesseSelection.add(chckbxModifierDirectementLa);
lblVitesseDeSlection = new JLabel("Vitesse de sélection");
lblVitesseDeSlection.setEnabled(false);
lblVitesseDeSlection.setFont(new Font("Tahoma", Font.PLAIN, 15));
lblVitesseDeSlection.setBounds(10, 65, 137, 21);
pnlVitesseSelection.add(lblVitesseDeSlection);
spnVitesseSelection = new JSpinner();
spnVitesseSelection.setEnabled(false);
spnVitesseSelection.setModel(new SpinnerNumberModel(new Integer(200000000), new Integer(0), null, new Integer(100)));
spnVitesseSelection.setBounds(219, 67, 110, 20);
pnlVitesseSelection.add(spnVitesseSelection);
lblMs1 = new JLabel("m/s");
lblMs1.setEnabled(false);
lblMs1.setFont(new Font("Tahoma", Font.PLAIN, 15));
lblMs1.setBounds(339, 65, 26, 21);
pnlVitesseSelection.add(lblMs1);
spnMasse = new JSpinner();
spnMasse.setModel(new SpinnerNumberModel(9, 2, 15, 1));
spnMasse.setBounds(78, 94, 41, 20);
pnlParametres.add(spnMasse);
spnCharge = new JSpinner();
spnCharge.setModel(new SpinnerNumberModel(-1, -3, 3, 1));
spnCharge.setBounds(77, 157, 41, 20);
pnlParametres.add(spnCharge);
JLabel lblVitesseDeLa = new JLabel("Vitesse de la particule à la");
lblVitesseDeLa.setFont(new Font("Tahoma", Font.PLAIN, 15));
lblVitesseDeLa.setBounds(236, 75, 176, 21);
pnlParametres.add(lblVitesseDeLa);
JLabel lblSortieDuCyclotron = new JLabel("sortie du cyclotron");
lblSortieDuCyclotron.setFont(new Font("Tahoma", Font.PLAIN, 15));
lblSortieDuCyclotron.setBounds(236, 103, 176, 21);
pnlParametres.add(lblSortieDuCyclotron);
spnVitesseParticule = new JSpinner();
spnVitesseParticule.setModel(new SpinnerNumberModel(new Integer(200000000), new Integer(0), null, new Integer(100)));
spnVitesseParticule.setBounds(422, 94, 110, 20);
pnlParametres.add(spnVitesseParticule);
btnParamtresAvancsDu = new JButton("Paramètres avancés du cyclotron");
btnParamtresAvancsDu.addActionListener(new ActionListener() {
/**
* Ecouteur sur le bouton Paramètres avancés du cyclotron
*/
public void actionPerformed(ActionEvent arg0) {
//debut
if (popupCyclotron.isVisible()==false) {
popupCyclotron.setVisible(true);
}
//fin
}
});
btnParamtresAvancsDu.setFont(new Font("Tahoma", Font.PLAIN, 15));
btnParamtresAvancsDu.setBounds(281, 167, 261, 32);
pnlParametres.add(btnParamtresAvancsDu);
spnChampMagnetique = new JSpinner();
spnChampMagnetique.setModel(new SpinnerNumberModel(1, 0, 3, 1));
spnChampMagnetique.setBounds(780, 47, 110, 20);
pnlParametres.add(spnChampMagnetique);
spnChampElectrique = new JSpinner();
spnChampElectrique.setModel(new SpinnerNumberModel(-141, -200, -10, 1));
spnChampElectrique.setBounds(780, 83, 110, 20);
pnlParametres.add(spnChampElectrique);
JLabel lblChampMagnetiqueDeflecteur = new JLabel("Champ magnétique");
lblChampMagnetiqueDeflecteur.setFont(new Font("Tahoma", Font.PLAIN, 15));
lblChampMagnetiqueDeflecteur.setBounds(1025, 83, 142, 21);
pnlParametres.add(lblChampMagnetiqueDeflecteur);
spnChampMagnetiqueDeflecteur = new JSpinner();
spnChampMagnetiqueDeflecteur.setModel(new SpinnerNumberModel(1, 0, 3, 1));
spnChampMagnetiqueDeflecteur.setBounds(1177, 85, 110, 20);
pnlParametres.add(spnChampMagnetiqueDeflecteur);
lblE = new JLabel("E");
lblE.setFont(new Font("Tahoma", Font.PLAIN, 15));
lblE.setBounds(123, 92, 14, 21);
pnlParametres.add(lblE);
spnExpMasse = new JSpinner();
spnExpMasse.setModel(new SpinnerNumberModel(-31, -40, -20, 1));
spnExpMasse.setBounds(141, 94, 57, 20);
pnlParametres.add(spnExpMasse);
JLabel lblE1 = new JLabel("E");
lblE1.setFont(new Font("Tahoma", Font.PLAIN, 15));
lblE1.setBounds(123, 155, 14, 21);
pnlParametres.add(lblE1);
spnExpCharge = new JSpinner();
spnExpCharge.setModel(new SpinnerNumberModel(-19, -40, -5, 1));
spnExpCharge.setBounds(141, 157, 57, 20);
pnlParametres.add(spnExpCharge);
lblKg = new JLabel("kg");
lblKg.setFont(new Font("Tahoma", Font.PLAIN, 15));
lblKg.setBounds(203, 93, 23, 21);
pnlParametres.add(lblKg);
lblC = new JLabel("C");
lblC.setFont(new Font("Tahoma", Font.PLAIN, 15));
lblC.setBounds(205, 155, 14, 21);
pnlParametres.add(lblC);
lblMs = new JLabel("m/s");
lblMs.setFont(new Font("Tahoma", Font.PLAIN, 15));
lblMs.setBounds(537, 92, 26, 21);
pnlParametres.add(lblMs);
lblT = new JLabel("T");
lblT.setFont(new Font("Tahoma", Font.PLAIN, 15));
lblT.setBounds(900, 47, 26, 21);
pnlParametres.add(lblT);
lblC1 = new JLabel("C");
lblC1.setFont(new Font("Tahoma", Font.PLAIN, 15));
lblC1.setBounds(900, 83, 26, 21);
pnlParametres.add(lblC1);
lblT1 = new JLabel("T");
lblT1.setFont(new Font("Tahoma", Font.PLAIN, 15));
lblT1.setBounds(1297, 83, 15, 21);
pnlParametres.add(lblT1);
JLabel lblParametres = new JLabel("Paramètres");
lblParametres.setHorizontalAlignment(SwingConstants.CENTER);
lblParametres.setFont(new Font("Tahoma", Font.PLAIN, 21));
lblParametres.setBounds(148, 492, 113, 21);
contentPane.add(lblParametres);
JPanel panel = new JPanel();
panel.setBorder(new LineBorder(new Color(0, 0, 0)));
panel.setBounds(975, 0, 352, 522);
contentPane.add(panel);
panel.setLayout(null);
JLabel lblRsultats = new JLabel("Résultats");
lblRsultats.setBounds(101, 31, 87, 26);
lblRsultats.setHorizontalAlignment(SwingConstants.CENTER);
lblRsultats.setFont(new Font("Tahoma", Font.PLAIN, 21));
panel.add(lblRsultats);
JSeparator separator_3 = new JSeparator();
separator_3.setForeground(Color.BLACK);
separator_3.setBounds(10, 140, 269, 2);
panel.add(separator_3);
JSeparator separator_4 = new JSeparator();
separator_4.setForeground(Color.BLACK);
separator_4.setBounds(10, 329, 269, 2);
panel.add(separator_4);
JLabel lblFrquenceDuCyclotron = new JLabel("Fréquence du cyclotron:");
lblFrquenceDuCyclotron.setFont(new Font("Tahoma", Font.PLAIN, 17));
lblFrquenceDuCyclotron.setBounds(10, 88, 178, 21);
panel.add(lblFrquenceDuCyclotron);
JLabel lblVitesseDeLa_1 = new JLabel("Vitesse de la particule à");
lblVitesseDeLa_1.setFont(new Font("Tahoma", Font.PLAIN, 17));
lblVitesseDeLa_1.setBounds(10, 173, 178, 21);
panel.add(lblVitesseDeLa_1);
JLabel lblLentreDuSlecteur = new JLabel("l'entrée du sélecteur de vitesse:");
lblLentreDuSlecteur.setFont(new Font("Tahoma", Font.PLAIN, 17));
lblLentreDuSlecteur.setBounds(10, 205, 246, 21);
panel.add(lblLentreDuSlecteur);
JLabel lblVitesseDeSlection_1 = new JLabel("Vitesse de sélection:");
lblVitesseDeSlection_1.setFont(new Font("Tahoma", Font.PLAIN, 17));
lblVitesseDeSlection_1.setBounds(10, 277, 154, 21);
panel.add(lblVitesseDeSlection_1);
JLabel lblDiametre = new JLabel("Diamètre de la trajectoire");
lblDiametre.setFont(new Font("Tahoma", Font.PLAIN, 17));
lblDiametre.setBounds(10, 362, 195, 21);
panel.add(lblDiametre);
JLabel lblCirculaire = new JLabel("circulaire:");
lblCirculaire.setFont(new Font("Tahoma", Font.PLAIN, 17));
lblCirculaire.setBounds(10, 394, 154, 21);
panel.add(lblCirculaire);
JLabel blbMasseDetectee = new JLabel("Masse détectée:");
blbMasseDetectee.setFont(new Font("Tahoma", Font.PLAIN, 17));
blbMasseDetectee.setBounds(10, 466, 154, 21);
panel.add(blbMasseDetectee);
lblResFrequenceCyclotron = new JLabel("0");
lblResFrequenceCyclotron.setFont(new Font("Tahoma", Font.PLAIN, 14));
lblResFrequenceCyclotron.setHorizontalAlignment(SwingConstants.RIGHT);
lblResFrequenceCyclotron.setHorizontalTextPosition(SwingConstants.LEADING);
lblResFrequenceCyclotron.setBounds(232, 92, 110, 14);
panel.add(lblResFrequenceCyclotron);
lblResVitesseEntreeSelecteur = new JLabel("0");
lblResVitesseEntreeSelecteur.setHorizontalTextPosition(SwingConstants.LEADING);
lblResVitesseEntreeSelecteur.setHorizontalAlignment(SwingConstants.RIGHT);
lblResVitesseEntreeSelecteur.setFont(new Font("Tahoma", Font.PLAIN, 14));
lblResVitesseEntreeSelecteur.setBounds(232, 179, 110, 14);
panel.add(lblResVitesseEntreeSelecteur);
lblResVitesseSelection = new JLabel("0");
lblResVitesseSelection.setHorizontalTextPosition(SwingConstants.LEADING);
lblResVitesseSelection.setHorizontalAlignment(SwingConstants.RIGHT);
lblResVitesseSelection.setFont(new Font("Tahoma", Font.PLAIN, 14));
lblResVitesseSelection.setBounds(232, 283, 110, 14);
panel.add(lblResVitesseSelection);
lblResDiametreTrajectoire = new JLabel("0");
lblResDiametreTrajectoire.setHorizontalTextPosition(SwingConstants.LEADING);
lblResDiametreTrajectoire.setHorizontalAlignment(SwingConstants.RIGHT);
lblResDiametreTrajectoire.setFont(new Font("Tahoma", Font.PLAIN, 14));
lblResDiametreTrajectoire.setBounds(232, 368, 110, 14);
panel.add(lblResDiametreTrajectoire);
lblResMasseDetectee = new JLabel("0");
lblResMasseDetectee.setHorizontalTextPosition(SwingConstants.LEADING);
lblResMasseDetectee.setHorizontalAlignment(SwingConstants.RIGHT);
lblResMasseDetectee.setFont(new Font("Tahoma", Font.PLAIN, 14));
lblResMasseDetectee.setBounds(232, 472, 110, 14);
panel.add(lblResMasseDetectee);
pnlSimulation = new JPanel();
pnlSimulation.setBounds(148, 11, 809, 461);
contentPane.add(pnlSimulation);
pnlSimulation.setLayout(new BorderLayout(0, 0));
menuBar = new JMenuBar();
setJMenuBar(menuBar);
mnFichier = new JMenu("Fichier");
mnFichier.setFont(new Font("Segoe UI", Font.PLAIN, 15));
menuBar.add(mnFichier);
mntmOuvrirModeCreation = new JMenuItem("Ouvrir le mode de création");
mntmOuvrirModeCreation.addActionListener(new ActionListener() {
/**
* Écouteur sur l'item Ouvrir le mode de création
*/
public void actionPerformed(ActionEvent arg0) {
//debut
if (popupEditorWindow.isVisible()==false) {
popupEditorWindow.setVisible(true);
}
//Fin
}
});
mntmOuvrirModeCreation.setFont(new Font("Segoe UI", Font.PLAIN, 13));
mnFichier.add(mntmOuvrirModeCreation);
mntmQuitter = new JMenuItem("Quitter");
mntmQuitter.setFont(new Font("Segoe UI", Font.PLAIN, 13));
/**
* Ecouteur sur l'item Quitter
*/
mntmQuitter.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
mnFichier.add(mntmQuitter);
mnEdition = new JMenu("Édition");
mnEdition.setFont(new Font("Segoe UI", Font.PLAIN, 15));
menuBar.add(mnEdition);
mntmediterSpectrometre = new JMenuItem("Éditer le spectromètre de masse dans le mode de création");
mntmediterSpectrometre.setFont(new Font("Segoe UI", Font.PLAIN, 13));
mnEdition.add(mntmediterSpectrometre);
mntmParametresCyclotron = new JMenuItem("Paramètres du cyclotron");
mntmParametresCyclotron.addActionListener(new ActionListener() {
/**
* Ecouteur sur l'item Paramètres avancés du cyclotron
*/
public void actionPerformed(ActionEvent arg0) {
//Debut
if (popupCyclotron.isVisible()==false) {
popupCyclotron.setVisible(true);
}
//Fin
}
});
mntmParametresCyclotron.setFont(new Font("Segoe UI", Font.PLAIN, 13));
mnEdition.add(mntmParametresCyclotron);
mnAffichage = new JMenu("Affichage");
mnAffichage.setFont(new Font("Segoe UI", Font.PLAIN, 15));
mnAffichage.setHorizontalTextPosition(SwingConstants.CENTER);
mnAffichage.setHorizontalAlignment(SwingConstants.CENTER);
menuBar.add(mnAffichage);
chckbxPleinEcran = new JCheckBox("Plein écran");
chckbxPleinEcran.setFont(new Font("Segoe UI", Font.PLAIN, 13));
mnAffichage.add(chckbxPleinEcran);
mntmGraphique = new JMenuItem("Graphique");
mntmGraphique.addActionListener(new ActionListener() {
/**
* Ecouteur sur l'item Graphique
*/
public void actionPerformed(ActionEvent e) {
//debut
if (popupGraphique.isVisible()==false) {
popupGraphique.setVisible(true);
}
//fin
}
});
mntmGraphique.setFont(new Font("Segoe UI", Font.PLAIN, 13));
mnAffichage.add(mntmGraphique);
mnAide = new JMenu("Aide");
mnAide.setFont(new Font("Segoe UI", Font.PLAIN, 15));
menuBar.add(mnAide);
mntmGuideDutilisation = new JMenuItem("Guide d'utilisation");
mntmGuideDutilisation.addActionListener(new ActionListener() {
/**
* Ecouteur sur l'item Guide d'utilisation
*/
public void actionPerformed(ActionEvent e) {
//debut
if (popupGuideUtilisation.isVisible()==false) {
popupGuideUtilisation.setVisible(true);
}
//fin
}
});
mntmGuideDutilisation.setFont(new Font("Segoe UI", Font.PLAIN, 13));
mnAide.add(mntmGuideDutilisation);
mntmConceptsScientifiques = new JMenuItem("Concepts scientifiques");
mntmConceptsScientifiques.addActionListener(new ActionListener() {
/**
* Ecouteur sur l'item Concepts Scientifiques
*/
public void actionPerformed(ActionEvent e) {
//debut
if (popupConceptsScientifiques.isVisible()==false) {
popupConceptsScientifiques.setVisible(true);
}
//fin
}
});
mntmConceptsScientifiques.setFont(new Font("Segoe UI", Font.PLAIN, 13));
mnAide.add(mntmConceptsScientifiques);
mntmAPropos = new JMenuItem("À propos");
mntmAPropos.addActionListener(new ActionListener() {
/**
* Ecouteur sur l'item À propos
*/
public void actionPerformed(ActionEvent e) {
//debut
if (popupAPropos.isVisible()==false) {
popupAPropos.setVisible(true);
}
//fin
}
});
mntmAPropos.setFont(new Font("Segoe UI", Font.PLAIN, 13));
mnAide.add(mntmAPropos);
initSimulation();
}
/**
* Permet d'initialiser la simulation et de l'ajouter à une fenêtre d'édition
*/
public void initSimulation() {
worldViewController = new SimulationViewController();
SimulationView simulationView = new SimulationView(worldViewController);
PhysicsWorld physicsWorld = TestApp.generateTestingWorld(simulationView);
simulationView.setBackground(Color.white);
worldViewController.setPhysicsWorld(physicsWorld);
worldViewController.setSimulationView(simulationView);
pnlSimulation.add(simulationView);
}
/**
* Méthode qui permet de lier une image à un bouton
* @author Caroline Houle
*/
public void associerBoutonAvecImage( JButton leBouton, String fichierImage ) {
Image imgLue=null;
URL urlImage = getClass().getClassLoader().getResource(fichierImage);
if (urlImage == null) {
JOptionPane.showMessageDialog(null , "Fichier " + fichierImage + " introuvable");
}
try {
imgLue = ImageIO.read(urlImage);
} catch (IOException e) {
JOptionPane.showMessageDialog(null , "Erreur pendant la lecture du fichier d'image");
}
//redimensionner l'image de la même grandeur que le bouton
Image imgRedim = imgLue.getScaledInstance( leBouton.getWidth(), leBouton.getHeight(), Image.SCALE_SMOOTH);
//au cas où le fond de l’image serait transparent
leBouton.setOpaque(false);
leBouton.setContentAreaFilled(false);
leBouton.setBorderPainted(false);
//associer l'image au bouton
leBouton.setText("");
leBouton.setIcon( new ImageIcon(imgRedim) );
//on se débarrasse des images intermédiaires
imgLue.flush();
imgRedim.flush();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment