Created
April 8, 2018 17:35
-
-
Save tran-simon/a7397c6c2cd405c2e2ac32af13c8bb2a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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