Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.*;
- import java.io.*;
- import java.util.*;
- public class VueStationMeteo extends JFrame implements StationMeteoConstantes {
- //variables constructeurs
- EnsValeurMeteo ens;
- //ArrayList<ValMeteoJour> j;
- JFileChooser chooser;
- //panels
- JPanel panelCentre;
- JPanel panelNord;
- JPanel panelOuest;
- JPanel panelSud;
- //variables panelCentre
- JTextArea centreTextArea;
- //variables panelNord
- JLabel nordPlaceLabel;
- JLabel nordSemaineLabel;
- JLabel nordTemperatureLabel;
- JLabel nordPrecipitationLabel;
- JTextField nordPlaceTextField;
- JComboBox nordSemaineComboBox;
- DefaultComboBoxModel defaultSemaine;
- JTextField nordTemperatureTextField;
- JTextField nordPrecipitationTextField;
- JComboBoxListener ecouteComboBox;
- //variables PanelOuest
- ArrayList<JButton> semaine;
- MeteoListener ecouteSemaine;
- //variables panelSud
- JButton charger;
- JButton sauver;
- JButton supprimer;
- MeteoListener ecouteCharger;
- MeteoListener ecouteSauver;
- MeteoListener ecouteSupprimer;
- //useful
- int val;
- public VueStationMeteo() {
- super("Station météo");
- this.ens = new EnsValeurMeteo();
- this.chooser = new JFileChooser(System.getProperties().getProperty("user.dir"));
- int returnVal = this.chooser.showOpenDialog(this.chooser.getParent());
- if(returnVal == JFileChooser.APPROVE_OPTION) {
- try {
- this.ens.charger(this.chooser.getSelectedFile().getName());
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- this.initialise();
- this.initConnections();
- this.setBounds(Toolkit.getDefaultToolkit().getScreenSize().width/2-800/2,Toolkit.getDefaultToolkit().getScreenSize().height/2-500/2,800,500);
- this.setMinimumSize(new Dimension(getSize()));
- this.setDefaultCloseOperation(EXIT_ON_CLOSE);
- this.setVisible(true);
- }
- private JPanel getPanelCentre() {
- this.panelCentre=new JPanel();
- this.centreTextArea = new JTextArea(this.panelCentre.getSize().width,this.panelCentre.getSize().height);
- this.panelCentre.add(this.centreTextArea);
- // for(int i = 0 ; i!=j.size() ; i++) {
- // this.centreTextArea.append(j.get(i).toString()+"\n\n\n\n");
- // }
- this.add(this.panelCentre,BorderLayout.CENTER);
- return this.panelCentre;
- }
- private JPanel getPanelNord() {
- this.panelNord=new JPanel();
- for(int i=0;i!=4;i++) {
- if (i==0) {
- this.panelNord.add(this.nordPlaceLabel = new JLabel(PLACE));
- this.panelNord.add(this.nordPlaceTextField = new JTextField(ens.getLieu(),6));
- }
- if (i==1) {
- this.panelNord.add(this.nordSemaineLabel = new JLabel(SEMAINE));
- this.panelNord.add(this.nordSemaineComboBox = new JComboBox(this.defaultSemaine = new DefaultComboBoxModel()));
- this.nordSemaineComboBox.addActionListener(this.ecouteComboBox = new JComboBoxListener());
- for(int k = 0; k!=52 ; k++) {
- this.defaultSemaine.addElement(nombreSemaine[k]);
- //ens.addAll(k,new ArrayList<ValMeteoJour>());
- }
- }
- if (i==2) {
- this.panelNord.add(this.nordTemperatureLabel = new JLabel(TEMPERATURE));
- this.panelNord.add(this.nordTemperatureTextField = new JTextField(6));
- }
- if (i==3) {
- this.panelNord.add(this.nordPrecipitationLabel = new JLabel(PRECIPITATION));
- this.panelNord.add(this.nordPrecipitationTextField = new JTextField(6));
- }
- }
- this.add(this.panelNord,BorderLayout.NORTH);
- return this.panelNord;
- }
- private JPanel getPanelOuest() {
- this.panelOuest=new JPanel();
- this.semaine = new ArrayList<JButton>();
- this.panelOuest.setLayout(new GridLayout(7,1,0,20));
- for(int i=0;i!=7;i++){
- this.semaine.add(new JButton(joursSemaine[i]));
- this.panelOuest.add(this.semaine.get(i));
- }
- return this.panelOuest;
- }
- class MeteoListener implements ActionListener {
- @Override
- public void actionPerformed(ActionEvent e) {
- // TODO Auto-generated method stub
- for(int i = 0 ; i!=7 ; i++) {
- if(((JButton)e.getSource()).equals(semaine.get(i))) {
- centreTextArea.setText(ens.toString()+"\n");
- centreTextArea.append(ens.get(i).toString()+"\n");
- nordTemperatureTextField.setText(String.valueOf(ens.get(i).getTemp()));
- nordPrecipitationTextField.setText(String.valueOf(ens.get(i).getPrec()));
- /*nordTemperatureTextField.getText();
- nordPrecipitationTextField.getText();*/
- saisieValeurs(i);
- }
- }
- if(e.getSource() == charger) {
- chooser = new JFileChooser(System.getProperties().getProperty("user.dir"));
- int returnVal = chooser.showOpenDialog(chooser.getParent());
- if(returnVal == JFileChooser.APPROVE_OPTION) {
- try {
- ens.charger(chooser.getSelectedFile().getName());
- } catch (IOException ex) {
- ex.printStackTrace();
- }
- }
- }
- if(e.getSource() == sauver) {
- ValMeteoJour temp = new ValMeteoJour(joursSemaine[val],Float.parseFloat(nordTemperatureTextField.getText()),Float.parseFloat(nordPrecipitationTextField.getText()));
- sauver(temp);
- }
- if(e.getSource() == supprimer) {
- String txt = centreTextArea.getSelectedText();
- supprimer(txt);
- }
- }
- }
- class JComboBoxListener implements ActionListener {
- public void actionPerformed(ActionEvent e) {
- //ens.setNumSemaine(((JButton)e.getSource()).getText());
- }
- }
- private JPanel getPanelSud() {
- this.panelSud=new JPanel();
- for(int i=0;i!=3;i++){
- if (i==0)
- this.panelSud.add(this.charger = new JButton("charger"));
- if (i==1)
- this.panelSud.add(this.sauver = new JButton("sauver"));
- if (i==2)
- this.panelSud.add(this.supprimer = new JButton("supprimer"));
- }
- this.add(this.panelSud,BorderLayout.SOUTH);
- return this.panelSud;
- }
- public void initialise(){
- this.setLayout(new BorderLayout());
- this.add(getPanelNord(),BorderLayout.NORTH);
- this.add(getPanelSud(),BorderLayout.SOUTH);
- this.add(getPanelCentre(),BorderLayout.CENTER);
- this.add(getPanelOuest(),BorderLayout.WEST);
- }
- public void initConnections() {
- this.ecouteSemaine = new MeteoListener();
- for(int i = 0 ; i!=7 ; i++)
- this.semaine.get(i).addActionListener(this.ecouteSemaine);
- this.ecouteCharger = new MeteoListener();
- this.charger.addActionListener(ecouteCharger);
- this.ecouteSauver = new MeteoListener();
- this.sauver.addActionListener(ecouteSauver);
- this.ecouteSupprimer = new MeteoListener();
- this.supprimer.addActionListener(ecouteSupprimer);
- }
- public void saisieValeurs(int jourSaisi) {
- this.val = jourSaisi;
- }
- public void sauver(ValMeteoJour donnees) {
- if(verificationSauvegarde()) {
- try {
- ens.sauver("test.txt", donnees);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- JOptionPane.showMessageDialog(this,"Sauvegarde");
- }
- else
- JOptionPane.showMessageDialog(this,"Erreur données");
- }
- public boolean verificationSauvegarde() {
- boolean flag = false;
- if(nordTemperatureTextField.getText() != null && nordTemperatureTextField.getText() != null) {
- if((Float.parseFloat(nordTemperatureTextField.getText()) >= -88 && Float.parseFloat(nordTemperatureTextField.getText()) <= 58) && Float.parseFloat(nordPrecipitationTextField.getText()) <= 1340) {
- flag = true;
- }
- }
- return flag;
- }
- public void supprimer(String texte) {
- if(verificationSuppression(texte) >= 0 && verificationSuppression(texte) <= 6) {
- ens.set(verificationSuppression(texte),null);
- JOptionPane.showMessageDialog(this,"Suppression");
- }
- else
- JOptionPane.showMessageDialog(this,"Erreur sélection");
- }
- public int verificationSuppression(String texte) {
- int flag = -1;
- for(int i = 0 ; i!=joursSemaine.length ; i++) {
- if(texte.contains(joursSemaine[i]))
- flag=i;
- }
- return flag;
- }
- public static void main(String[] args){
- new VueStationMeteo();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement