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 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274
| package histoire;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
import javax.swing.border.*;
import javax.swing.JScrollBar;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.*;
import javax.swing.*;
/**
* @author PATRICE
*
*/
public class FormeHistoire extends JFrame {
public static final long serialVersionUID= 1;
private static final String TITRE = "Histoire mondiale";
private transient static FormeHistoire fen =null;
//le menu
private JMenuBar menu = new JMenuBar();
//le panneau central
//à gauche
//la carte
private JPanel carte=new JPanel();
//le scrollbar latitude
private JScrollBar scrLatitude=new JScrollBar(JScrollBar.VERTICAL);
//le scrollbar longitude
private JScrollBar scrLongitude= new JScrollBar(JScrollBar.HORIZONTAL);
//le bouton loupe
private JButton btnLoupe=new JButton();
private JPanel gauche=new JPanel();
//à droite
private WebBrowser droit;
private JSplitPane centre=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
//le panneau sud
//la barre d'état
private JPanel barreEtat=new JPanel();
//le scrollbar dates
private JScrollBar scbDate = new JScrollBar(JScrollBar.HORIZONTAL);
private JPanel sud = new JPanel();
public static FormeHistoire getInstance(){
if (fen==null){
fen=new FormeHistoire();
}
return fen;
}
protected FormeHistoire(){
//action prévue à la fermeture
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
fermerApplication();
}
});
//taille de la fenêtre
setExtendedState(JFrame.MAXIMIZED_BOTH);
Rectangle taille=Fonctions.trouverDimensionFen(this);
setLocation(taille.x,taille.y);
setPreferredSize(new Dimension(taille.width,taille.height));
//la taille sur cet ordinateur c'est 1032x742
//installation du menu, sa hauteur = 23, la hauteur utile devient 719
initialiserMenus();
//installation du bas : barre d'état et scroll dates, sa hauteur 37,
//la hauteur utile devient 682
initialiserSud(); //
//la carte, ses scrolls, son bouton et le WB
//la hauteur de la carte (et ses contrôles) c'est 682.
setTitle(TITRE);
initialiserCentre();
setVisible(true);
repaint();
}
private void initialiserCentre(){
centre.setDividerSize(0);
int h=getPreferredSize().height
-menu.getPreferredSize().height
-sud.getPreferredSize().height
-8;
centre.setDividerLocation(h);
//initialisation gauche
gauche.setLayout(new GridBagLayout());
GridBagConstraints contraintes=new GridBagConstraints();
btnLoupe.setMargin(new Insets(0,0,0,0));
carte.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
Fonctions.addGB(gauche, carte, contraintes, 0, 0,1f,1f);
Fonctions.addGB(gauche,scrLongitude,contraintes,1,0);
Fonctions.addGB(gauche, scrLatitude, contraintes, 0,1);
Fonctions.addGB(gauche,btnLoupe,contraintes,1,1);
centre.setLeftComponent(gauche);
//initialisation droite
droit=new WebBrowser();
centre.setRightComponent(droit);
add(centre,BorderLayout.CENTER);
}
private void initialiserSud(){
sud.setLayout(new BoxLayout(sud,BoxLayout.Y_AXIS));
sud.add(scbDate);
initialiserBarreEtat();
sud.add(barreEtat);
add(sud,BorderLayout.SOUTH);
}
protected void initialiserBarreEtat(){
barreEtat.setLayout(new BoxLayout(barreEtat,BoxLayout.X_AXIS));
JLabel lblLocalisation=new JLabel("Localisation");
lblLocalisation.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
barreEtat.add(Box.createHorizontalStrut(3));
barreEtat.add(lblLocalisation);
JLabel lblDate=new JLabel("Date");
lblDate.setBorder(BorderFactory.createLoweredBevelBorder());
barreEtat.add(Box.createHorizontalStrut(3));
barreEtat.add(lblDate);
JLabel lblLoupe=new JLabel("Loupe");
lblLoupe.setBorder(BorderFactory.createLoweredBevelBorder());
barreEtat.add(Box.createHorizontalStrut(3));
barreEtat.add(lblLoupe);
barreEtat.add(Box.createGlue());
JLabel lblPays=new JLabel("Pays");
lblPays.setOpaque(true);
lblPays.setBackground(Color.BLACK);
lblPays.setForeground(Color.WHITE);
lblPays.setBorder(BorderFactory.createEtchedBorder(5,Color.WHITE,Color.DARK_GRAY));
barreEtat.add(Box.createHorizontalStrut(5));
barreEtat.add(lblPays);
JLabel lblRoi=new JLabel("Souverain");
lblRoi.setOpaque(true);
lblRoi.setBackground(Color.BLACK);
lblRoi.setForeground(Color.WHITE);
lblRoi.setBorder(BorderFactory.createEtchedBorder(5,Color.WHITE,Color.DARK_GRAY));
barreEtat.add(Box.createHorizontalStrut(3));
barreEtat.add(lblRoi);
barreEtat.add(Box.createHorizontalStrut(3));
add(barreEtat,BorderLayout.SOUTH);
}
private void initialiserMenus(){
JMenu MnFichier=new JMenu("Fichier");
JMenuItem Annul = new JMenuItem("Annuler les modifications précédentes");
Annul.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,"Sert à annuler les modifications précédentes");}
});
MnFichier.add(Annul);
//menu valeurs initiales
JMenuItem ValeursInit = new JMenuItem("Valeurs initiales");
ValeursInit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,
"Sert à récupérer les valeurs de l'installation");}
});
MnFichier.add(ValeursInit);
MnFichier.addSeparator();
//menu sauver carte
JMenuItem MnISauverCarte = new JMenuItem("Sauvegarder une carte");
MnISauverCarte.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,
"Sert à Sauver une carte et le texte afférent");}
});
MnFichier.add(MnISauverCarte);
//menu visualiser carte
JMenuItem MnIVisualiserCarte = new JMenuItem("Visualiser une carte sauvegardée");
MnIVisualiserCarte.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,
"Sert à visualiser une carte sauvegardée et le texte afférent");}
});
MnFichier.add(MnIVisualiserCarte);
//Création du menu Choix
JMenu MnChoix = new JMenu("Choix");
JMenuItem MnIChxRegion = new JMenuItem("d'une région");
MnIChxRegion.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,
"Sert à choisir une région (un paragraphe)");}
});
MnChoix.add(MnIChxRegion);
JMenuItem MnIChxDate = new JMenuItem("d'une date");
MnIChxDate.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,
"Sert à choisir une date");}
});
MnChoix.add(MnIChxDate);
//Création du menu Option
JMenu MnOption = new JMenu("Options");
JMenu MnZoom = new JMenu("Zoom");
JMenu MnDeplacements=new JMenu("Déplacements");
JMenu MnSources = new JMenu("Sources");
JMenu MnAide = new JMenu("Aide");
MnOption.add(new JCheckBoxMenuItem("Info permanentes"));
MnOption.add(new JCheckBoxMenuItem("Zone-loupe active"));
MnOption.add(new JCheckBoxMenuItem("Fleuves visibles"));
MnOption.add(new JCheckBoxMenuItem("ToolTipText visibles"));
//Création du menu Zoom
ButtonGroup groupZoom=new ButtonGroup();
JRadioButtonMenuItem rbmi;
float [] t= {1F, 1.3F, 1.8F, 2.5F,3.5F,4.5F, 6F, 8F};
for(int i=0;i<t.length;i++){
rbmi=new JRadioButtonMenuItem(t[i] + "x ",true);
groupZoom.add(rbmi);
MnZoom.add(rbmi);
}
t=null;
//Création du menu Déplacements
JMenu MnDeplDates=new JMenu("Dates");
String [] valeurs={"1 an","5 ans","10 ans","25 ans","50 ans","100 ans","250 ans","500 ans"};
ButtonGroup groupDates=new ButtonGroup();
for(int i=0;i<valeurs.length;i++){
rbmi=new JRadioButtonMenuItem(valeurs[i],true);
groupDates.add(rbmi);
MnDeplDates.add(rbmi);
}
MnDeplacements.add(MnDeplDates);
JMenu MnDeplEspace=new JMenu("Espace (en degré)");
valeurs=new String [] {"1°","2°","5°","10°","15°","20°"};
ButtonGroup groupEspace=new ButtonGroup();
for(int i=0;i<valeurs.length;i++){
rbmi=new JRadioButtonMenuItem(valeurs[i],true);
groupEspace.add(rbmi);
MnDeplEspace.add(rbmi);
}
MnDeplacements.add(MnDeplEspace);
//création du menu Sources
MnSources.add(new JMenuItem("Bibliographie"));
MnSources.add(new JMenuItem("Liens"));
//création du menu Aide
MnAide.add(new JMenuItem("Présentation"));
MnAide.add(new JMenuItem("A propos"));
menu.add(MnFichier);
menu.add(MnChoix);
menu.add(MnOption);
menu.add(MnZoom);
menu.add(MnDeplacements);
menu.add(MnSources);
menu.add(MnAide);
setJMenuBar(menu);
}
private void fermerApplication(){
FormeDynastie.getInstance().dispose();
System.out.println("Au revoir.\nN'oubliez pas de tout nettoyer.");
System.exit(0);
}
} |
Partager