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

Graphisme Java Discussion :

Une fenetre film


Sujet :

Graphisme Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Par défaut Une fenetre film
    Voici le code

    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
    import java.awt.*;
    import java.io.*;
    import javax.swing.*;
     
    import java.awt.event.*;
     
     
     
     
    public class FenetreFilms extends JFrame implements ActionListener
    {
     
    	private JLabel numéro = new JLabel("Numéro :",SwingConstants.LEFT);
    	private JLabel titre = new JLabel("Titre :",SwingConstants.LEFT);
    	private JLabel langue = new JLabel("Langue :",SwingConstants.LEFT);
    	private JLabel texte = new JLabel("Entrez le numéro ou le titre du film");
    	private JLabel img = new JLabel(new ImageIcon("images.gif")); 
    	private JLabel img2 = new JLabel(new ImageIcon("images2.gif"));
    	private JTextField zoneNuméro = new JTextField(10);
    	private JTextField zoneTitre = new JTextField(10);
    	private JTextField zoneLangue = new JTextField(10);
    	private JRadioButton location = new JRadioButton("Location");
    	private JRadioButton retour = new JRadioButton("Retour");
    	private JButton annuler = new JButton("Annuler");
    	private JButton ok = new JButton("OK");
    	private JButton terminer = new JButton("Terminer");
    	private JButton gauche = new JButton(new ImageIcon("precedente.gif"));
    	private JButton droite = new JButton(new ImageIcon("suivante.gif"));
    	private JPanel descriptions = new JPanel();
    	private JPanel info = new JPanel();
    	private JPanel selection = new JPanel();
    	private ButtonGroup groupe = new ButtonGroup();
     
     
    	//création d'un objet
    	Videotheque eric = new Videotheque("Vidéo Ahuntsic");
     
     
    	public FenetreFilms()
    	{
    		super("VIDEO AHUNTSIC");
    		initComposants();
    		this.pack();
    		setVisible(true);
    		setLocation(200,200);
     
     
     
    	}
    	public void initComposants(){
    		Container c = getContentPane();
    		c.setLayout(new BorderLayout());
    		descriptions.setLayout(new FlowLayout());;
    		descriptions.setBackground(Color.BLACK);
    		selection.setBackground(Color.BLACK);
    		texte.setForeground(Color.WHITE);
    		info.setLayout(new GridLayout(5,2,10,10));
    		info.setBackground(new Color(38,48,84));
    		selection.setLayout(new FlowLayout());
    		descriptions.add(texte);
    		info.add(numéro);
    		numéro.setForeground(Color.WHITE);
    		zoneNuméro.addActionListener(this);
    		info.add(zoneNuméro);
    		info.add(titre);
    		titre.setForeground(Color.WHITE);
    		zoneTitre.addActionListener(this);
    		info.add(zoneTitre);
    		info.add(langue);
    		langue.setForeground(Color.WHITE);
    		zoneLangue.addActionListener(this);
    		info.add(zoneLangue);
    		location.addActionListener(this);
    		location.setBackground(new Color(38,48,84));
    		info.add(location);
    		location.setForeground(Color.GREEN);
    		retour.addActionListener(this);
    		info.add(retour);
    		retour.setForeground(Color.GREEN);
    		retour.setBackground(new Color(38,48,84));
    		annuler.addActionListener(this);
    		selection.add(annuler);
    		ok.addActionListener(this);
    		selection.add(ok);
    		gauche.addActionListener(this);
    		gauche.setMargin(new Insets(0,0,0,0));
    		gauche.setEnabled(false);
    		selection.add(gauche);
    		droite.addActionListener(this);
    		droite.setMargin(new Insets(0,0,0,0));
    		droite.setEnabled(false);
    		droite.addActionListener(this);
    		selection.add(droite);
    		terminer.addActionListener(this);
    		selection.add(terminer);
     
     
    		groupe.add(retour);
    		groupe.add(location);
     
     
    		c.add(descriptions, BorderLayout.NORTH);
    		c.add(info, BorderLayout.CENTER);
    		c.add(selection, BorderLayout.SOUTH);
     
     
    	}
    	public void actionPerformed(ActionEvent e){
    		int posi=-1;
    		final int NEGATIVE=-1;
     
     
    		if(e.getSource()==zoneNuméro){
    			int num = Integer.parseInt(zoneNuméro.getText());
    			posi= eric.rechercherFilm(num);
     
     
    			if(posi==NEGATIVE)
    				texte.setText("Le film demandé est inexistant");
     
    			else {
    				zoneTitre.setText(eric.getFilm(posi).getTitre());
    				zoneLangue.setText(eric.getFilm(posi).getLangue());
    				texte.setText("Cliquez sur OK pour confirmer le retour ou la location");
    				gauche.setEnabled(true);
    				droite.setEnabled(true);
    			}
    		}  
    		else if(e.getSource()==zoneTitre){
    				String unTitre=zoneTitre.getText();
    				posi= eric.rechercherFilm(unTitre);
     
    				if(posi==NEGATIVE)
    					texte.setText("Le film demandé est inexistant");
    				else {
    					String texte= ""+eric.getFilm(posi).getNumero();
    					String texte2= eric.getFilm(posi).getLangue();
    					zoneNuméro.setText(texte);
    					zoneLangue.setText(texte2);
     
    				}
    		}
    		//action pour le bouton annuler
    		else if ( e.getSource()==annuler)
    		{
    			zoneNuméro.setText("");
    			zoneTitre.setText("");
    			zoneLangue.setText("");
    			texte.setText("Entrez le numéro ou le titre du film");
    			gauche.setEnabled(false);
    			droite.setEnabled(false);
     
    		//louer un film ou retourner film
    		} else if( e.getSource()== ok){
     
    			final int NEG=-1;
    			String message="";
    			int numéro = Integer.parseInt(zoneNuméro.getText());
    			int indice = eric.rechercherFilm(numéro);
    			if(indice!=NEG){
    				if(retour.isSelected()){
    				message=eric.getFilm(indice).retournerFilm();
    				}else
    				message=eric.getFilm(indice).louerFilm();
    		    texte.setText(message);
    			}else
    				texte.setText("Le film demandé est inexistant");
    		}
     
    		//action pour le bouton precedent
    		else if(e.getSource()==gauche){
    			int num = Integer.parseInt(zoneNuméro.getText());
    			int indice = eric.rechercherFilm(num);
    			indice--;
     
     
    			String texte=""+eric.getFilm(indice).getNumero();
    			String texte2= eric.getFilm(indice).getLangue();
    			String texte3=eric.getFilm(indice).getTitre();
    			zoneNuméro.setText(texte);
    			zoneLangue.setText(texte2);
    			zoneTitre.setText(texte3);
     
     
     
     
     
    	//action pour le bouton suivant
    	}else if(e.getSource()==droite){
    		int num = Integer.parseInt(zoneNuméro.getText());
    		int indice = eric.rechercherFilm(num);
    		indice++;
     
    		String texte=""+eric.getFilm(indice).getNumero();
    		String texte2= eric.getFilm(indice).getLangue();
    		String texte3=eric.getFilm(indice).getTitre();
    		zoneNuméro.setText(texte);
    		zoneLangue.setText(texte2);
    		zoneTitre.setText(texte3);
     
     
     
     
    		//action du bouton terminer
    		}else if(e.getSource()==terminer){
     
    			eric.ecrireFichier();
    			eric.trierFilm();
    			eric.listerFilms();
    			System.exit(0);
    		}
    	}
     
    	public void afficherFilm(int i){
    		zoneNuméro.setText(""+eric.getFilm(i).getNumero());
    		zoneTitre.setText(""+eric.getFilm(i).getTitre());
    		zoneLangue.setText(""+eric.getFilm(i).getLangue());
    	}
    	public static void main(String[] args){
    		FenetreFilms fenetre= new FenetreFilms();
    		fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    }
    En cliquant sur les flèches suivants ou précédents, je veux que quand je suis rendu au dernier film et que je clique sur suivant une autre fois, il faut que sa retourne au premier film et quand je suis au premier film et que je clique sur prédécédent, il faut que sa retourne sur le dernier film.

    Merci

  2. #2
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Par défaut
    Salut,

    Tu peux faire comme ca :

    en rajoutant dans //action pour le bouton precedent
    si (indice == 1 (ou au premier indice) )
    alors indice = le dernier indice (ou le plus gros indice de tes films)
    sinon indice--;

    et dans //action pour le bouton suivant
    si (indice ==dernier indice)
    alors indice=1 (ou premier indice)
    sinon indice++;

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Par défaut
    Tu peux me le mettre en code s.v.p ?

    Merci

  4. #4
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    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
     
     
    int dernier_indice = eric.size();//soit eric.length
     
    //action pour le bouton precedent
    if (indice == 1){
            indice = dernier_indice;
    }else{
            indice--;
    }
     
    //action pour le bouton suivant
    if (indice == dernier_indice){
          indice = 1;
    }else{
            indice++;
    }
    C'est pas évident je ne connais pas l'objet videothèque si c'est un ArrayList, un vector...

    Si t'as une méthode dans ton objet videothèque qui renvoie le nombre d'éléments ca sera pareil que size() ou length.

    Je crois que dans les règles de nommage de variable faut pas mettre d'accents : "zoneNuméro"

  5. #5
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    autre astuce : utiliser les modulo (reste de la division euclidienne).
    index modulo nbFilms donne ceci :

    0 modulo 3 = 0
    1 modulo 3 = 1
    2 modulo 3 = 2
    3 modulo 3 = 0
    4 modulo 3 = 1 (4 = 3+1)

    tu n'as plus qu'a incrementer ou decrementer ton index a chaque click sans te soucier de si c'est le dernier ou le premier. La boucle se fera toute seule.

    Par contre je debute en java et je ne connait pas l'instruction qui permet d'avoir le modulo
    Si mes souvenirs (lointain) sont bons, c'etait % en C ....

Discussions similaires

  1. [VB6] [Système] Récupérer le contenu d'une fenêtre DOS
    Par Nounours666 dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 18/11/2004, 16h38
  2. [MDI] Ouvrir immédiatement une fenetre fille
    Par phil56 dans le forum C++Builder
    Réponses: 8
    Dernier message: 12/03/2003, 14h27
  3. [VB6] Dimension d'une fenetre extérieure
    Par Ingham dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 22/01/2003, 16h52
  4. Aide sur une fenetre
    Par Ray-j dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 29/11/2002, 08h51
  5. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 13h39

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