Advertisement
Guest User

l'arménie est un pays vraiment très bien

a guest
May 21st, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.93 KB | None | 0 0
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import java.io.*;
  5. import java.util.*;
  6.  
  7. public class VueStationMeteo extends JFrame implements StationMeteoConstantes {
  8.  
  9. //variables constructeurs
  10. EnsValeurMeteo ens;
  11. //ArrayList<ValMeteoJour> j;
  12. JFileChooser chooser;
  13.  
  14. //panels
  15. JPanel panelCentre;
  16. JPanel panelNord;
  17. JPanel panelOuest;
  18. JPanel panelSud;
  19.  
  20. //variables panelCentre
  21. JTextArea centreTextArea;
  22.  
  23. //variables panelNord
  24. JLabel nordPlaceLabel;
  25. JLabel nordSemaineLabel;
  26. JLabel nordTemperatureLabel;
  27. JLabel nordPrecipitationLabel;
  28.  
  29. JTextField nordPlaceTextField;
  30. JComboBox nordSemaineComboBox;
  31. DefaultComboBoxModel defaultSemaine;
  32. JTextField nordTemperatureTextField;
  33. JTextField nordPrecipitationTextField;
  34.  
  35. JComboBoxListener ecouteComboBox;
  36.  
  37. //variables PanelOuest
  38. ArrayList<JButton> semaine;
  39. MeteoListener ecouteSemaine;
  40.  
  41. //variables panelSud
  42. JButton charger;
  43. JButton sauver;
  44. JButton supprimer;
  45. MeteoListener ecouteCharger;
  46. MeteoListener ecouteSauver;
  47. MeteoListener ecouteSupprimer;
  48.  
  49. //useful
  50. int val;
  51.  
  52.  
  53. public VueStationMeteo() {
  54.  
  55. super("Station météo");
  56. this.ens = new EnsValeurMeteo();
  57. this.chooser = new JFileChooser(System.getProperties().getProperty("user.dir"));
  58. int returnVal = this.chooser.showOpenDialog(this.chooser.getParent());
  59. if(returnVal == JFileChooser.APPROVE_OPTION) {
  60. try {
  61. this.ens.charger(this.chooser.getSelectedFile().getName());
  62. } catch (IOException e) {
  63. e.printStackTrace();
  64. }
  65. }
  66. this.initialise();
  67. this.initConnections();
  68. this.setBounds(Toolkit.getDefaultToolkit().getScreenSize().width/2-800/2,Toolkit.getDefaultToolkit().getScreenSize().height/2-500/2,800,500);
  69. this.setMinimumSize(new Dimension(getSize()));
  70. this.setDefaultCloseOperation(EXIT_ON_CLOSE);
  71. this.setVisible(true);
  72. }
  73.  
  74. private JPanel getPanelCentre() {
  75.  
  76. this.panelCentre=new JPanel();
  77. this.centreTextArea = new JTextArea(this.panelCentre.getSize().width,this.panelCentre.getSize().height);
  78. this.panelCentre.add(this.centreTextArea);
  79. // for(int i = 0 ; i!=j.size() ; i++) {
  80. // this.centreTextArea.append(j.get(i).toString()+"\n\n\n\n");
  81. // }
  82. this.add(this.panelCentre,BorderLayout.CENTER);
  83. return this.panelCentre;
  84. }
  85.  
  86. private JPanel getPanelNord() {
  87.  
  88. this.panelNord=new JPanel();
  89. for(int i=0;i!=4;i++) {
  90.  
  91. if (i==0) {
  92. this.panelNord.add(this.nordPlaceLabel = new JLabel(PLACE));
  93. this.panelNord.add(this.nordPlaceTextField = new JTextField(ens.getLieu(),6));
  94. }
  95. if (i==1) {
  96. this.panelNord.add(this.nordSemaineLabel = new JLabel(SEMAINE));
  97. this.panelNord.add(this.nordSemaineComboBox = new JComboBox(this.defaultSemaine = new DefaultComboBoxModel()));
  98. this.nordSemaineComboBox.addActionListener(this.ecouteComboBox = new JComboBoxListener());
  99.  
  100. for(int k = 0; k!=52 ; k++) {
  101. this.defaultSemaine.addElement(nombreSemaine[k]);
  102. //ens.addAll(k,new ArrayList<ValMeteoJour>());
  103. }
  104. }
  105. if (i==2) {
  106. this.panelNord.add(this.nordTemperatureLabel = new JLabel(TEMPERATURE));
  107. this.panelNord.add(this.nordTemperatureTextField = new JTextField(6));
  108. }
  109. if (i==3) {
  110. this.panelNord.add(this.nordPrecipitationLabel = new JLabel(PRECIPITATION));
  111. this.panelNord.add(this.nordPrecipitationTextField = new JTextField(6));
  112. }
  113. }
  114. this.add(this.panelNord,BorderLayout.NORTH);
  115. return this.panelNord;
  116. }
  117.  
  118. private JPanel getPanelOuest() {
  119.  
  120. this.panelOuest=new JPanel();
  121. this.semaine = new ArrayList<JButton>();
  122. this.panelOuest.setLayout(new GridLayout(7,1,0,20));
  123.  
  124. for(int i=0;i!=7;i++){
  125.  
  126. this.semaine.add(new JButton(joursSemaine[i]));
  127. this.panelOuest.add(this.semaine.get(i));
  128. }
  129. return this.panelOuest;
  130. }
  131.  
  132. class MeteoListener implements ActionListener {
  133.  
  134. @Override
  135. public void actionPerformed(ActionEvent e) {
  136. // TODO Auto-generated method stub
  137. for(int i = 0 ; i!=7 ; i++) {
  138. if(((JButton)e.getSource()).equals(semaine.get(i))) {
  139. centreTextArea.setText(ens.toString()+"\n");
  140. centreTextArea.append(ens.get(i).toString()+"\n");
  141. nordTemperatureTextField.setText(String.valueOf(ens.get(i).getTemp()));
  142. nordPrecipitationTextField.setText(String.valueOf(ens.get(i).getPrec()));
  143. /*nordTemperatureTextField.getText();
  144. nordPrecipitationTextField.getText();*/
  145. saisieValeurs(i);
  146. }
  147. }
  148.  
  149. if(e.getSource() == charger) {
  150.  
  151. chooser = new JFileChooser(System.getProperties().getProperty("user.dir"));
  152. int returnVal = chooser.showOpenDialog(chooser.getParent());
  153. if(returnVal == JFileChooser.APPROVE_OPTION) {
  154. try {
  155. ens.charger(chooser.getSelectedFile().getName());
  156. } catch (IOException ex) {
  157. ex.printStackTrace();
  158. }
  159. }
  160. }
  161.  
  162. if(e.getSource() == sauver) {
  163.  
  164. ValMeteoJour temp = new ValMeteoJour(joursSemaine[val],Float.parseFloat(nordTemperatureTextField.getText()),Float.parseFloat(nordPrecipitationTextField.getText()));
  165. sauver(temp);
  166. }
  167.  
  168. if(e.getSource() == supprimer) {
  169.  
  170. String txt = centreTextArea.getSelectedText();
  171. supprimer(txt);
  172. }
  173. }
  174. }
  175.  
  176. class JComboBoxListener implements ActionListener {
  177.  
  178. public void actionPerformed(ActionEvent e) {
  179.  
  180. //ens.setNumSemaine(((JButton)e.getSource()).getText());
  181. }
  182. }
  183.  
  184. private JPanel getPanelSud() {
  185.  
  186. this.panelSud=new JPanel();
  187.  
  188. for(int i=0;i!=3;i++){
  189.  
  190. if (i==0)
  191. this.panelSud.add(this.charger = new JButton("charger"));
  192. if (i==1)
  193. this.panelSud.add(this.sauver = new JButton("sauver"));
  194. if (i==2)
  195. this.panelSud.add(this.supprimer = new JButton("supprimer"));
  196.  
  197. }
  198. this.add(this.panelSud,BorderLayout.SOUTH);
  199.  
  200. return this.panelSud;
  201. }
  202.  
  203. public void initialise(){
  204.  
  205. this.setLayout(new BorderLayout());
  206. this.add(getPanelNord(),BorderLayout.NORTH);
  207. this.add(getPanelSud(),BorderLayout.SOUTH);
  208. this.add(getPanelCentre(),BorderLayout.CENTER);
  209. this.add(getPanelOuest(),BorderLayout.WEST);
  210. }
  211.  
  212. public void initConnections() {
  213.  
  214. this.ecouteSemaine = new MeteoListener();
  215. for(int i = 0 ; i!=7 ; i++)
  216. this.semaine.get(i).addActionListener(this.ecouteSemaine);
  217. this.ecouteCharger = new MeteoListener();
  218. this.charger.addActionListener(ecouteCharger);
  219. this.ecouteSauver = new MeteoListener();
  220. this.sauver.addActionListener(ecouteSauver);
  221. this.ecouteSupprimer = new MeteoListener();
  222. this.supprimer.addActionListener(ecouteSupprimer);
  223. }
  224.  
  225. public void saisieValeurs(int jourSaisi) {
  226.  
  227. this.val = jourSaisi;
  228. }
  229.  
  230. public void sauver(ValMeteoJour donnees) {
  231.  
  232. if(verificationSauvegarde()) {
  233.  
  234. try {
  235. ens.sauver("test.txt", donnees);
  236. } catch (IOException e) {
  237. // TODO Auto-generated catch block
  238. e.printStackTrace();
  239. }
  240. JOptionPane.showMessageDialog(this,"Sauvegarde");
  241. }
  242. else
  243. JOptionPane.showMessageDialog(this,"Erreur données");
  244. }
  245.  
  246. public boolean verificationSauvegarde() {
  247.  
  248. boolean flag = false;
  249.  
  250. if(nordTemperatureTextField.getText() != null && nordTemperatureTextField.getText() != null) {
  251. if((Float.parseFloat(nordTemperatureTextField.getText()) >= -88 && Float.parseFloat(nordTemperatureTextField.getText()) <= 58) && Float.parseFloat(nordPrecipitationTextField.getText()) <= 1340) {
  252.  
  253. flag = true;
  254. }
  255. }
  256.  
  257. return flag;
  258. }
  259.  
  260. public void supprimer(String texte) {
  261.  
  262. if(verificationSuppression(texte) >= 0 && verificationSuppression(texte) <= 6) {
  263. ens.set(verificationSuppression(texte),null);
  264. JOptionPane.showMessageDialog(this,"Suppression");
  265. }
  266. else
  267. JOptionPane.showMessageDialog(this,"Erreur sélection");
  268. }
  269.  
  270. public int verificationSuppression(String texte) {
  271.  
  272. int flag = -1;
  273.  
  274. for(int i = 0 ; i!=joursSemaine.length ; i++) {
  275. if(texte.contains(joursSemaine[i]))
  276. flag=i;
  277. }
  278.  
  279. return flag;
  280. }
  281.  
  282. public static void main(String[] args){
  283.  
  284. new VueStationMeteo();
  285. }
  286. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement