IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

"Changement d'images dans le temps"


Sujet :

Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 25
    Points : 16
    Points
    16
    Par défaut "Changement d'images dans le temps"
    Bonjour,
    Voilà j'ai un menu principal avec une image, insérée dans un JPanel.
    Ce que j'aimerais, c'est que mon programme change mon image après un certain temps. Ca ne doit pas être sorcier, mais je suis nouveau dans le domaine de la programmation.
    Voilà mon image:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ImageIcon Image = new ImageIcon("./Image4.jpeg"); 
    label.setIcon(Image);
    Images attachées Images attachées  

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 866
    Points : 22 919
    Points
    22 919
    Billets dans le blog
    52
    Par défaut
    Tu te crees un Timer Swing qui change l'image/icon de maniere similaire a intervalles reguliers tout simplement.

  3. #3
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    Stocke tes images dans un tableau d'Image ou une list d'image.
    Lance un Timer.
    Modifie l'image courante et repaint ton panel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    //Écrit sans test
    public class Test extends JPanel implements ActionListener{
    private ImageIcon ImageCourant;//L'image affiché
    private ImageIcon[] tableauImage;
    private int compteurImage = 0;;
    private Timer t;
    //Constructeur
    public Test(){
    tableauImage = new ImageIcon[20];//20 images
    tableauImage[0] = new ImageIcon("./Image4.jpeg");
    tableauImage[1] = new ImageIcon("./Image584.jpeg");
    //...
    ImageCourant = tableauImage[compteurImage];//initialise la première image 
    t = new Timer(10000,this);//Activé toute les 10 sec. this = ActionListener
    t.start();
    }
     
    public void paintComponent(Graphics g){
    //... Dessine ImageCourant
    }
     
    public void actionPerformed(Event e){
    compteurImage ++;//incrémente la prochaine image ( VERIFIER LES SORTIES DE TABLEAU )
    ImageCourant = tableauImage[compteurImage];//Remplace l'image
    this.repaint;//redessine
    }
    Edit : Grillé

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Merci pour les réponses. Cependant je n'arrive toujours pas à faire fonctionner mon programme.

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    un peu plus de précision (code, messages d'erreur) serait bienvenu

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Voilà mon code
    J'ai 3 images (Image4, Image2 et Image1)
    Image4 est insérée dans un JLabel, l'idée est que le programme remplace Image4 par Image2 au bout de, par exemple 10 secondes, et qu'il remplace ensuite Image2 par Image1 au bout de 10 secondes. Je n'ai aucune idée de comment faire cela. Si vous avez des propositions ce serait fort aimable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    470
    471
    472
    473
    474
    475
    476
    477
    478
    479
    480
    481
    482
    483
    484
    485
    486
    487
    488
    489
    490
    491
    492
    493
    494
    495
    496
    497
    498
    499
    500
    501
    502
    503
    504
    505
    506
    507
    508
    509
    510
    511
    512
    513
    514
    515
    516
    517
    518
    519
    520
    521
    522
    523
    524
    525
    526
    527
    528
    529
    530
    531
    532
    533
    534
    535
    536
    537
    538
    539
    540
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    //Fichier: Travail de maturitŽ
    //Auteurs: Jo‘l Theytaz
    //Date:    2010
     
    public class Programme extends JFrame{
     
            private JPanel panel = new JPanel();
            private JPanel panel2 = new JPanel();
            private JPanel panel3 = new JPanel();
            private JLabel label = new JLabel();
     
            // Barre de menu
            private JMenuBar menuBar = new JMenuBar();
            private JMenu Fichier = new JMenu("Fichier");
            private JMenu Gomaths = new JMenu("Gomaths");
            private JMenu Aide = new JMenu("Aide");
            private JMenuItem item1 = new JMenuItem("Mode d'emploi");
        	private JMenuItem item2 = new JMenuItem("Quitter");
        	private JMenuItem item3 = new JMenuItem("Gomaths");
     
            private JButton bouton1 = new JButton("MathŽmatiques Financires");
            private JButton bouton2 = new JButton("Jours dans un mois");
            private JButton bouton3 = new JButton("Conversions");
            private JButton bouton4 = new JButton("Equation du 2me degrŽ");
            private JButton bouton5 = new JButton("Calcul de factorielle");
            private JButton bouton6 = new JButton("Calculatrice");
            private JButton bouton7 = new JButton("Livrets");
            private JButton bouton8 = new JButton("Quitter");
            Toolkit environnement = Toolkit.getDefaultToolkit();
     
            public Programme(){
     
            		SplashScreen splash = new SplashScreen(8000);
            		splash.showSplashAndExit();
     
        			JOptionPane.showMessageDialog(null, "MathŽmatiques\n" +
    					"TM 2010\n" +
    					"Auteur: Jo‘l Theytaz\n" +
    					"Date:   2010-2011");
     
            		// Parametres de la fenetre
                    this.setTitle("Menu Principal");
                    this.setSize(environnement.getScreenSize().width, environnement.getScreenSize().height);
                    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    this.setLocationRelativeTo(null);
                    this.Aide.add(item1);
                    this.Fichier.add(item2);
                    this.Gomaths.add(item3);
                    this.menuBar.add(Fichier);
                    this.menuBar.add(Gomaths);
                    this.menuBar.add(Aide);
     
                    // Clic sur "Quitter"
                    item2.addActionListener(new ActionListener(){
            			public void actionPerformed(ActionEvent arg0) {
            				System.exit(0);
            			}				
            		});
     
                    // Clic sur "Gomaths"
                    item3.addActionListener(new ActionListener(){
            			public void actionPerformed(ActionEvent arg0) {
            				Runtime runtime = Runtime.getRuntime();
            				Process process = null;
            				try
            				{
            					process = runtime.exec(new String[]{"open", "http://www.gomaths.ch/index.php"});
            				}
     
            				catch(Exception err)
            				{
            					System.out.println("err = " + err);
            				}  
            			}				
            		});
     
                    // Clic sur "Mode d'emploi"
                    item1.addActionListener(new ActionListener(){
            			public void actionPerformed(ActionEvent arg0) {
            				Runtime runtime = Runtime.getRuntime();
            				Process process = null;
            				try
            				{
            					process = runtime.exec(new String[]{"open", "./Mode_dÕemploi.pdf"});
            				}
     
            				catch(Exception err)
            				{
            					System.out.println("err = " + err);
            				}  
            			}				
            		});
     
                    panel.setLayout(new BorderLayout());
                    panel.setBackground(Color.BLUE);
     
                    ImageIcon Image4 = new ImageIcon("./Image4.jpeg"); 
                    ImageIcon Image1 = new ImageIcon("./Image1.jpeg"); 
                    ImageIcon Image2 = new ImageIcon("./Image2.jpeg"); 
                    label.setIcon(Image4);
     
                    // Fixation des objets sur la fenetre
                    panel.add(panel2, BorderLayout.CENTER);
                    panel.add(panel3, BorderLayout.NORTH);
                    panel2.add(label);
                    panel3.add(bouton1);
                    panel3.add(bouton2);
                    panel3.add(bouton3);
                    panel3.add(bouton5);
                    panel3.add(bouton4);
                    panel3.add(bouton6);
                    panel3.add(bouton7);
                    panel3.add(bouton8);
     
                    // Pression sur le bouton => effectuer la class Bouton1Listener
                    bouton1.addActionListener(new Bouton1Listener());
                    // Pression sur le bouton => effectuer la class Bouton2Listener
                    bouton2.addActionListener(new Bouton2Listener());
                    // Pression sur le bouton => effectuer la class Bouton3Listener
                    bouton3.addActionListener(new Bouton3Listener());
                    // Pression sur le bouton => effectuer la class Bouton4Listener
                    bouton4.addActionListener(new Bouton4Listener());
                    // Pression sur le bouton => effectuer la class Bouton5Listener
                    bouton5.addActionListener(new Bouton5Listener());
                    // Pression sur le bouton => effectuer la class Bouton6Listener
                    bouton6.addActionListener(new Bouton6Listener());
                    // Pression sur le bouton => effectuer la class Bouton7Listener
                    bouton7.addActionListener(new Bouton7Listener());
                    // Pression sur le bouton => effectuer la class Bouton8Listener
                    bouton8.addActionListener(new Bouton8Listener());
     
                    this.setJMenuBar(menuBar);
                    this.setContentPane(panel);
                    this.setVisible(true);
     
            }
     
            // Placements a interet simple
        	public static void placementinteretsimple (int reponse, boolean pasFini, double taux, double duree, double valeurinitiale, double valeurfinale) {
        		do {
        	    	 reponse = (int) Double.parseDouble(JOptionPane.showInputDialog("Veuillez choisir ce que vous voulez faire:\n" +
        						"1 = calculer l'intŽrt d'un placement ˆ intŽrt simple\n" +
        						"2 = calculer la valeur finale d'un capital placŽ ˆ intŽrt simple\n" +
        						"3 = calculer la valeur initiale d'un capital placŽ ˆ intŽrt simple\n" +
        						"4 = calculer le taux d'intŽrt de votre placement\n" +
        	    	 			"5 = calculer la durŽe de votre placement\n" +
        	    	 			"6 = MathŽmatiques Financires - Menu principal"));
     
        	         switch (reponse) {
        	         case 1: interetsimple(taux, duree, valeurinitiale);
        	         		 break;
        	         case 2: valeurfinale(valeurinitiale, taux, duree);
        	         		 break;
        	         case 3: valeurinitiale(valeurfinale, taux, duree);
        	         		break;
        	         case 4: taux(valeurinitiale, valeurfinale, duree);
        	         		 break;
        	         case 5: duree(valeurinitiale, valeurfinale, taux);
        	        	 	 break;
        	         case 6: pasFini = false;
        	         		 break;
        	         default: break;
        	         }
        	       }
        	       while (pasFini);
     
        		}
     
        	// calcul de I (interet)
        	public static void interetsimple (double taux, double duree, double valeurinitiale) {
     
        		valeurinitiale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur initiale du capital placŽ:"));
        		taux = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le taux d'intŽrt en %:"));
        		duree = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la durŽe du placement en jours:"));
        		JOptionPane.showMessageDialog(null, "Votre intŽrt vaut :" + valeurinitiale * (taux/100) * (duree/360));
     
        	}	
     
        	// calcul de Cn (valeur finale)
        	public static void valeurfinale (double valeurinitiale, double taux, double duree) {
     
        		valeurinitiale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur initiale du capital placŽ:"));
        		taux = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le taux d'intŽrt en %:"));
        		duree = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la durŽe du placement en jours:"));
        		JOptionPane.showMessageDialog(null, "Votre capital aprs " + duree + " jours vaut: " + valeurinitiale * (1 + (taux/100) * (duree/360)));
     
        	}
     
        	// calcul de Co en connaissant Cn
        	public static void valeurinitiale (double valeurfinale, double taux, double duree) {
     
        		valeurfinale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur finale du capital placŽ:"));
        		taux = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le taux d'intŽrt en %:"));
        		duree = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la durŽe du placement en jours:"));
        		JOptionPane.showMessageDialog(null, "La valeur initiale du capital placŽ vallait: " + (valeurfinale / (1 + (taux/100) * (duree/360))));
        	}
     
        	// calcul du taux
        	public static void taux (double valeurinitiale, double valeurfinale, double duree) {
     
        		valeurinitiale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur initiale du capital placŽ:"));
        		valeurfinale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur finale du capital placŽ:"));
        		duree = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la durŽe du placement en jours:"));
        		JOptionPane.showMessageDialog(null, "Le taux d'intŽrt de votre placement vaut: " + (((valeurfinale/valeurinitiale -1) * 360) / duree) * 100 + " %");
        	}
     
        	// calcul de la duree du placement
        	public static void duree (double valeurinitiale, double valeurfinale, double taux) {
     
        		valeurinitiale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur initiale du capital placŽ:"));
        		valeurfinale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur finale du capital placŽ:"));
        		taux = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le taux d'intŽrt en %:"));
        		JOptionPane.showMessageDialog(null, "La durŽe de votre placement vaut: " + (((valeurfinale/valeurinitiale -1) * 100) / taux) * 360 + " jours");
        	}
     
        	// Placements a interets composes
        	public static void placementsinteretscomposes (int reponse, boolean pasFini, double taux, double duree, double valeurinitiale, double valeurfinale) {
        		do {
        			 reponse = (int) Double.parseDouble(JOptionPane.showInputDialog("Veuillez choisir ce que vous voulez faire:\n" +
        					 	"1 = calculer la valeur finale du capital placŽ ˆ intŽrts composŽs\n" +
        					 	"2 = calculer la valeur initiale du capital placŽ ˆ intŽrts composŽs\n" +
        					 	"3 = calculer le taux d'intŽrt de votre placement\n" +
        			 			"4 = calculer la durŽe de votre placement\n" +
        			 			"5 = MathŽmatiques Financires - Menu principal"));
     
        	         switch (reponse) {
        	         case 1: valeurfinalecompose(valeurinitiale, taux, duree);
        	         		 break;
        	         case 2: valeurinitialecompose(valeurfinale, taux, duree);
        	         		 break;
        	         case 3: tauxcompose(valeurinitiale, valeurfinale, duree);
        	         		 break;
        	         case 4: dureecompose(valeurinitiale, valeurfinale, taux);
        	         		 break;
        	         case 5: pasFini = false;
        	         		 break;
        	         default: break;
        	         }
        	       }
        	       while (pasFini);
        	}
     
        	// calcul de Cn (valeur finale)
        	public static void valeurfinalecompose (double valeurinitiale, double taux, double duree) {
     
        		valeurinitiale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur initiale du capital placŽ:"));
        		taux = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le taux d'intŽrt en %:"));
        		duree = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la durŽe de votre placement en pŽriodes:"));
        		JOptionPane.showMessageDialog(null, "Votre capital aprs " + duree + " pŽriodes vaudra: " + valeurinitiale * Math.pow((1 + taux/100), (duree)));
        	}
     
        	// calcul de Co en connaissant Cn
        	public static void valeurinitialecompose (double valeurfinale, double taux, double duree) {
     
        		valeurfinale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur finale du capital placŽ:"));
        		taux = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le taux d'intŽrt en %:"));
        		duree = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la durŽe de votre placement en pŽriodes:"));
        		JOptionPane.showMessageDialog(null, "Votre capital initial vaut: " + valeurfinale / Math.pow((1 + taux/100), (duree)));
        	}
     
        	// calcul du taux
        	public static void tauxcompose (double valeurinitiale, double valeurfinale, double duree) {
     
        		valeurinitiale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur initiale du capital placŽ:"));
        		valeurfinale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur finale du capital placŽ:"));
        		duree = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la durŽe de votre placement en pŽriodes:"));
        		JOptionPane.showMessageDialog(null, "Le taux de votre placement vaut: " + (Math.pow(valeurfinale/valeurinitiale, 1.0/duree)-1) * 100 + " %");
        	}
     
        	// calcul de la duree du placement
        	public static void dureecompose (double valeurinitiale, double valeurfinale, double taux) {
     
        		valeurinitiale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur initiale du capital placŽ:"));
        		valeurfinale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur finale du capital placŽ:"));
        		taux = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le taux d'intŽrt en %:"));
        		JOptionPane.showMessageDialog(null, "La durŽe de votre placement vaut: " + Math.log(valeurfinale/valeurinitiale) / Math.log(1+taux/100) + " pŽriodes");
        	}
     
        	// calculs de rentes praenumerando ou rentes de placement
        	public static void rentespraenumerando (int reponse, boolean pasFini, double terme, double taux, double valeurinitiale, double valeurfinale, int nombreversements) {
        		do {
        			reponse = (int) Double.parseDouble(JOptionPane.showInputDialog("Veuillez choisir ce que vous voulez faire:\n" +
        					   "1 = calculer la valeur finale de la rente de placement\n" +
        					   "2 = calculer la valeur des termes de la rente de placement\n" +
        					   "3 = calculer le taux de la rente de placement\n" +
        					   "4 = calculer le nombre de versements\n" +
        	    			   "5 = calculer la somme qui placŽe ˆ une certaine d‰te donnerait la valeur finale\n" +
        			 		   "6 = MathŽmatiques Financires - Menu principal"));
     
        	         switch (reponse) {
        	         case 1: valeurfinalerenteprae(terme, taux, nombreversements);
        	         		 break;
        	         case 2: termeprae(valeurfinale, taux, nombreversements);
        	         		 break;
        	         case 3: tauxprae(valeurfinale, terme, nombreversements);
        	         		 break;
        	         case 4: nombreversementsprae(valeurfinale, terme, taux);
        	         		 break;
        	         case 5: iprae(valeurfinale, taux, nombreversements);
        	        	 	 break;
        	         case 6: pasFini = false;
        	         		 break;
        	         default: break;
        	         }
        	       }
        	       while (pasFini);
        	}
     
        	// calcul de la valeur finale d'une rente preanumerando
        	public static void valeurfinalerenteprae (double terme, double taux, int nombreversements) {
     
        		terme = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur des termes de la rente de placement:"));
        		taux = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le taux de la rente de placement:"));
        		nombreversements = (int) Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le nombre de versements:"));
        		JOptionPane.showMessageDialog(null, "La valeur finale de votre rente de placement vaut: " + terme*(1+taux/100)*(Math.pow(1+taux/100, nombreversements)-1)/(taux/100));
        	}
     
        	// calcul de la valeur des termes de la rente
        	public static void termeprae (double valeurfinale, double taux, int nombreversements) {
     
        		valeurfinale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur finale de la rente de placement:"));
        		taux = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le taux de la rente de placement:"));
        		nombreversements = (int) Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le nombre de versements:"));
        		JOptionPane.showMessageDialog(null, "La valeur des termes de votre rente de placement vaut: " + valeurfinale / ((1+taux/100)*(Math.pow(1+taux/100, nombreversements)-1)/(taux/100)));
        	}
     
        	// calcul du taux de la rente
        	public static void tauxprae (double valeurfinale, double terme, int nombreversements) {
     
        		valeurfinale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur finale de la rente de placement:"));
        		terme = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur des termes de la rente de placement:"));
        		nombreversements = (int) Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le nombre de versements:"));
        		JOptionPane.showMessageDialog(null, "Le taux de votre rente de placement vaut: ");
        	}
     
        	// calcul du nombre de versements
        	public static void nombreversementsprae (double valeurfinale, double terme, double taux) {
     
        		valeurfinale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur finale de la rente de placement:"));
        		terme = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur des termes de la rente de placement:"));
        		taux = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le taux de la rente de placement:"));
        		JOptionPane.showMessageDialog(null, "Le nombre de versements vaut: ");
        	}
     
        	// calcul de la somme qui donnerait Fprae
        	public static void iprae (double valeurfinale, double taux, int nombreversements) {
     
        		valeurfinale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur finale de la rente de placement:"));
        		taux = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le taux de la rente de placement:"));
        		nombreversements = (int) Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le nombre de versements:"));
        		JOptionPane.showMessageDialog(null, "La somme qui donnerait " + valeurfinale + " aprs " + nombreversements + " versements vaudrait: " + valeurfinale / Math.pow(1+taux/100, nombreversements));
        	}
     
        	// calculs de rentes postnumerando ou rentes de remboursement
        	public static void rentespostnumerando (int reponse, boolean pasFini, double terme, double taux, double valeurinitiale, double valeurfinale, int nombreversements) {
        		do {
        			 reponse = (int) Double.parseDouble(JOptionPane.showInputDialog("Veuillez choisir ce que vous voulez faire:\n" +
        			 			"1 = calculer la valeur finale de la rente\n" +
        			 			"2 = calculer la valeur des termes de la rente\n" +
        		 				"3 = calculer le taux de la rente\n" +
        		 				"4 = calculer le nombre de versements\n" +
        		 				"5 = calculer la somme qui placŽe au dŽbut donnerait la valeur finale\n" +
        			 			"6 = MathŽmatiques Financires - Menu principal"));
     
        	         switch (reponse) {
        	         case 1: valeurfinalerentepost(terme, taux, nombreversements);
        	         		 break;
        	         case 2: termepost(valeurfinale, taux, nombreversements);
        	         		 break;
        	         case 3: tauxpost(valeurfinale, terme, nombreversements);
        	         		 break;
        	         case 4: nombreversementspost(valeurfinale, terme, taux);
        	         		 break;
        	         case 5: ipost(valeurfinale, taux, nombreversements);
        	        	 	 break;
        	         case 6: pasFini = false;
        	         		 break;
        	         default: break;
        	         }
        	       }
        	       while (pasFini);
        	}
     
        	// calcul de la valeur finale d'une rente postnumerando
        	public static void valeurfinalerentepost (double terme, double taux, int nombreversements) {
     
        		terme = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur des termes de la rente de remboursement:"));
        		taux = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le taux de la rente de remboursement:"));
        		nombreversements = (int) Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le nombre de versements:"));
        		JOptionPane.showMessageDialog(null, "La valeur finale de votre rente de remboursement vaudra: " + terme*(Math.pow(1+taux/100, nombreversements)-1)/(taux/100));
        	}
     
        	// calcul de la valeur des termes de la rente
        	public static void termepost (double valeurfinale, double taux, int nombreversements) {
     
        		valeurfinale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur finale de la rente de remboursement:"));
        		taux = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le taux de la rente de remboursement:"));
        		nombreversements = (int) Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le nombre de versements:"));
        		JOptionPane.showMessageDialog(null, "La valeur des termes de votre rente de remboursement vaut: " + valeurfinale / (Math.pow(1+taux/100, nombreversements)-1)/(taux/100));
        	}
     
        	// calcul du taux de la rente
        	public static void tauxpost (double valeurfinale, double terme, int nombreversements) {
     
        		valeurfinale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur finale de la rente de remboursement:"));
        		terme = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur des termes de la rente de remboursement:"));
        		nombreversements = (int) Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le nombre de versements:"));
        		JOptionPane.showMessageDialog(null, "Le taux de votre rente de remboursement vaut: ");
        	}
     
        	// calcul du nombre de versements
        	public static void nombreversementspost (double valeurfinale, double terme, double taux) {
     
        	}
     
        	// calcul de la somme qui donnerait Fpost
        	public static void ipost (double valeurfinale, double taux, int nombreversements) {
     
        		valeurfinale = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer la valeur finale de la rente de remboursement:"));
        		taux = Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le taux de la rente de remboursement:"));
        		nombreversements = (int) Double.parseDouble(JOptionPane.showInputDialog("Veuillez entrer le nombre de versements:"));
        		JOptionPane.showMessageDialog(null, "La somme qui donnerait " + valeurfinale + " aprs " + nombreversements + " versements vaudrait: " + valeurfinale / Math.pow(1+taux/100, nombreversements));
        	}
     
        	// Clic sur le bouton "MathŽmatiques Fiancires"
            class Bouton1Listener  implements ActionListener{
     
                public void actionPerformed(ActionEvent arg0) {
     
                	// Bienvenue
            		JOptionPane.showMessageDialog(null, "Bienvenue dans ce programme qui va vous permettre de rŽsoudre des calculs de mathŽmatiques financires\n");
     
            		double valeurinitiale = 0;			// valeur initiale du placement ou de la rente
            		double valeurfinale = 0;			// valeur finale du placement ou de la rente
            		double taux = 0;					// taux du placement ou de la rente
            		double duree = 0;					// duree du placement
            		double terme = 0;					// le terme de la rente
            		int nombreversements = 0;			// nombre de versements de la rente
            		int reponse;             			// Pour le choix de l'utilisateur
            	    boolean pasFini = true;  			// Pour repeter la boucle
     
            	       do {
            	    	 reponse = (int) Double.parseDouble(JOptionPane.showInputDialog("Veuillez choisir ce que vous voulez faire:\n" +
            	    			 														"1 = placements ˆ intŽrt simple\n" +
            	    			 														"2 = placements ˆ intŽrts composŽs\n" +
            	    			 														"3 = rentes praenumerando ou rentes de placement\n" +
            	    	 																"4 = rentes postnumerando ou rentes de remboursement\n" +
            	    	 																"5 = Menu Principal"));
     
            	         switch (reponse) {
            	         case 1: placementinteretsimple(reponse, pasFini, taux, duree, valeurinitiale, valeurfinale);
            	         		 break;
            	         case 2: placementsinteretscomposes(reponse, pasFini, taux, duree, valeurinitiale, valeurfinale);
            	         		 break;
            	         case 3: rentespraenumerando(reponse, pasFini, terme, taux, valeurinitiale, valeurfinale, nombreversements);
            	        	 	 break;
            	         case 4: rentespostnumerando(reponse, pasFini, terme, taux, valeurinitiale, valeurfinale, nombreversements);
            	        	 	 break;
            	         case 5: pasFini = false;
            	         		 break;
            	         default: break;
            	         }
            	       }
            	       while (pasFini);
            		}            
                }
     
        }
     
            class Bouton2Listener  implements ActionListener{
     
                public void actionPerformed(ActionEvent e) {
                   // Lance la class JoursMois
                   JoursMois JM = new JoursMois();              
                }
     
            }  
     
            class Bouton3Listener implements ActionListener{
     
            	public void actionPerformed(ActionEvent e) {
            		// Lance la class Conversion
            		Conversion C = new Conversion();
            	}
            }
     
            class Bouton4Listener implements ActionListener{
     
            	public void actionPerformed(ActionEvent e) {
            		// Lance la class Equation2emeDegrŽ
            		Equation2emeDegrŽ E2D = new Equation2emeDegrŽ();
            	}
            }
     
            class Bouton5Listener implements ActionListener{
     
            	public void actionPerformed(ActionEvent e) {
            		// Lance la class Factorielle
            		Factorielle F = new Factorielle();
            	}	
            }
     
            class Bouton6Listener implements ActionListener{
     
            	public void actionPerformed(ActionEvent e) {
            		// Lance la class Calculatrice
            		Calculatrice Calc = new Calculatrice();
            	}	
            }
     
            class Bouton7Listener implements ActionListener{
     
            	public void actionPerformed(ActionEvent e) {
            		// Lance la class Livrets
            		Livrets livrets = new Livrets();
            	}	
            }
     
            class Bouton8Listener implements ActionListener{
     
            	public void actionPerformed(ActionEvent e) {
            		// Quitter le programme
            		System.exit(0);
            	}	
            }

  7. #7
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    //Écrit sans test
    public class Test extends JPanel implements ActionListener{
    private ImageIcon[] tableauImage;//Le tableau contenant les images
    private int cmp = 0;
    private JLabel label;
    private Timer t;
    //Constructeur
    public Test(){
    tableauImage = new ImageIcon[3];//3 images
    tableauImage[0] = new ImageIcon("./Image4.jpeg");
    tableauImage[1] = new ImageIcon("./Image2.jpeg");
    tableauImage[2] = new ImageIcon("./Image1.jpeg");
    label = new JLabel();
    label.setIcon(tabImage[cmp]);
    t = new Timer(10000,this);//Activé toute les 10 sec. this = ActionListener
    t.start();
    }
     
     
     
    public void actionPerformed(Event e){//Activé par le Timer toute les 10 sec
    cmp ++;
    if(cmp >3) cmp = 0;
    label.setIcon(tabImage[cmp]);//Modification de l'image
    }
    Je ne peux pas faire mieux.
    Remarque : le Timer est un timer SWING
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import javax.swing.Timer;

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    t'aurais pas oublié de mettre le label dans le panneau via un add(label) par hasard?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Mon label est accroché à mon panel. JPanel.add(label)

  10. #10
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    On ne connait toujours pas l'origine du problème.
    Le mieux dans ton cas est de recréer une petite classe JAVA pour "tester" la gestion des fonds d'écran.

    Parce que à l'heure actuel, tu n'as pas l'air de comprendre plus que ça cette partie. Et si tu t'amuse à tester dans ta classe principal, tu va vite t'embrouiller .

    Donc un conseil, isole le problème, fait des tests (dans une classe a part), apprend à maitriser le domaine, et réinjecte la solution retenu dans ton programme principal.

    Vu comme ça, ça peux prendre du temps, mais ce n'est pas grands chose à final. Et tu pourras réutiliser les connaissance que tu auras apprise tous seul sur d'autre projet. Plutôt que de faire un bête copier-coller de la solution et ne pas savoir à quoi elle correspond.

    j'attends ta classe de test

  11. #11
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    désolé, en regardant d'un oeil distrait, j'ai cru que le code de Ivelios était le tiens, d'ou mon message. Comme on te l'a di, pour changer l'image, utilise un Timer.

  12. #12
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    désolé, en regardant d'un oeil distrait, j'ai cru que le code de Ivelios était le tiens, d'ou mon message
    J'aurais commis une erreur
    Mais j'avais prévenu : //Écrit sans test

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Bonjour,
    Voilà j'ai créé une petite class "Test"
    Je me suis inspiré de ton code "Ivelios", merci
    La class fonctionne presque parfaitement, le problème venait de l'"import"

    import javax.swing.Timer;

    Le dernier petit problème est que lorsque le programme a affiché les 3 images, il devrait revenir à la première image. Cependant il "plante" après la dernière et reste coincé sur la dernière image.
    Voici le message d'erreur qu'il affiche après la dernière image.

    Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 3
    at Test.actionPerformed(Test.java:43)
    at javax.swing.Timer.fireActionPerformed(Timer.java:271)
    at javax.swing.Timer$DoPostEvent.run(Timer.java:201)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    Fichiers attachés Fichiers attachés

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    C'est bon j'ai trouvé l'erreur,
    if(cmp >3)
    alors qu'il y a trois images et que le compteur vaut au début 0
    Il faut donc mettre
    if(cmp >2)
    pour que cela fonctionne.
    Merci pour vos réponses!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changement d'image dans un tableau [ExtJS3.x]
    Par abraxis dans le forum Ext JS / Sencha
    Réponses: 1
    Dernier message: 13/09/2012, 15h27
  2. Faire défiler des images dans le temps sur un formulaire
    Par CyrilD dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/01/2011, 14h25
  3. changement d'image dans un player audio
    Par yosyl dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 03/04/2008, 09h47
  4. Changement d'image dans un cadre
    Par greg06500 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/08/2007, 06h54
  5. Réponses: 8
    Dernier message: 19/01/2006, 10h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo