Vous êtes sur la page 1sur 16

CSI 1502

Principes fondamentaux de
conception de logiciels

Chapitre 6: Tableaux
(suite)
Objectifs d'apprentissage:
Tableaux - Partie B
Comprendre les conceptes suivants:
 Tableaux à plusieurs dimensions

 La classe ArrayList

 Polygones and polylignes; types de bouton

2
Tableaux à deux dimensions
 Un tableau à une dimension stocke simplement une liste de
valeurs
 Un tableau à deux dimensions est une table de valeurs en lignes et
en colonnes
 Parce que chaque dimension est un tableau de références à un
tableau, les tableaux pour chaque dimension peuvent être de
différentes longueurs
 Parfois appelé tableau inégal (ragged arrays)

 Un élément d'un tableau à deux dimensions désigné par deux


valeurs d'index
int[][] scores = new int[10][10];
value = scores [3][6]

 Pour être plus précis, un tableau à deux dimensions


dans Java est un tableau de tableaux
3
Tableaux à deux dimensions:
TwoDArray.java
public class TwoDArray
{
// create a 2D array of integers and print them
public static void main (String[] args)
{
int[][] table = new int[4][6];
// load values
for (int row = 0; row < table.length; row++)
for (int col = 0; col < table[row].length; col++)
table[row][col] = row * 10 + col;
// print the values
for (int row = 0; row < table.length; row++)
{
for (int col = 0; col < table[row].length; col++)
System.out.print(table[row][col] + "\t");
System.out.println();
} … }}
4
Tableaux à plusieurs
dimensions
 Un tableau peut avoir plusieurs dimensions
 S'il y a plus d'une dimension, c'est un tableau à plusieurs
dimensions
 Chaque dimension subdivise celle précédente dans le
nombre spécifié d'éléments
 Chaque dimension a sa propre constante length
 C'est souvent difficile à visualiser pour le humains

5
La classe ArrayList:
Augmenter et Diminuer
 La classe ArrayList fait partie du package
java.util

 Comme un tableau, elle peut stocké une liste de


valeurs qui peuvent être référencé par un index

 Non comme un tableau, un objet ArrayList


augmente et diminue tel que nécessaire
 Les éléments peuvent être inséré ou extrait avec
l'invocation d'une simple méthode

 Elle stocke des références à la classe Object


6
Quelques méthodes de la
classe ArrayList
ArrayList () // constructor: creates an empty list
boolean add (Object obj) // Add object to end of list
void add (int index, Object obj)
// Add object at index
void clear(); // Remove all elements from the list
Object remove (int index);
//Remove element at index
Object remove (int index);
//Return element at index without removing it
Boolean isEmpty(); //Return true if the list is empty
7
Performance de ArrayList
 La classe ArrayList est implémentée à l'aide d'un
tableau.

 Le tableau s'élargit au-delà de sa capacité initiale pour


permettre des éléments additionels

 Il y a des méthodes qui manipulent le tableau pour les


indexes demeurent continus lorsque des éléments sont
insérés ou extraits

8
Utiliser Arraylist:
Beatles.java
import java.util.ArrayList;
public class Beatles // stores and modify list of band members
{
public static void main(String[] args)
{
ArrayList band = new ArrayList();

band.add("Paul");
band.add("Pete");
band.add("John");
band.add("George");
System.out.println(band);

int location = band.indexOf("Pete");


band.remove(location);
System.out.println(band);

band.add("Ringo");
System.out.println(band);
System.out.println("Size of band: " + band.size()); } } 9
Polygones et Polylignes
 Les tableaux sont souvent utiles dans le domaine du traitement de
graphiques
 Les polygones et les polylignes sont des formes qui peuvent être défini
par des valeurs stockées dans des tableaux
 La classe Polygon, défini dans le package java.awt, peut être utilisé
pour définir et dessiner un polygone
 Deux versions des méthodes surchargées (overloaded) drawPolygon et
fillPolygon acceptent un objet Polygon comme paramètre
 Un objet Polygon a encapsulé les coordonnées du polygone
 Voir Rocket.java (page 360)

10
Autres types de bouton:
Case à cocher (Check box)
 Une case à cocher est un bouton qui peut être basculé entre les
états "activé" et "désactivé"
 Une case à cocher est réprésentée par la classe JCheckBox
 Un changement d'état génère un événement item

 Voir StyleOptions.java et StyleGUI.java (pp. 364-5)

SAY IT WITH STYLE!


√ Bold Italic

11
Check box:
Extrait de StyleGUI.java
import javax.swing.*; StyleListener listerner = new
import java.awt.*; StyleListerner();
import java.awt.event.*;
… bold.addItemListener(listener);
private JLabel saying; italic.addItemListener(listener);
private JCheckBox bold, italic;
private JPanel primary; primary = new JPanel();
… primary.add(saying);
{ primary.add(bold);
saying = new JLabel(“Say it with style!”); primary.add(italic);
bold = new JCheckBox(“Bold”); primary.setBackground(Color.cyan);
italic = new JCheckBox(“Italic”); primary.setPreferredSize(new
… Dimension(300, 100);

12
La classe Font
 L'objet Font est défini par le nom, le style et la taille de la fonte de
caractères
 Le style d'une fonte peut être "plain", "bold", "italic", ou "bold" et
"italic" ensemble

 La méthode itemStateChanged du module d'écoute (listener)


réagit lorsqu'une case de cocher (check box) change d'état
final int FONT_SIZE = 32;

int style = font.PLAIN;

if (bold.isSelected())
style = Font.BOLD;

saying.setFont (new Font(“Tahoma”, style, FONT_SIZE);


13
Bouton radio
 Un ensemble de boutons radio représente un ensemble
d'options mutuellement exclusifs
 Lorsqu'un bouton radio est sélectionné, l'autre bouton activé
dans le groupe est basculé à l'état désactivé
 Un bouton radio génère un événement action
 Voir QuoteOptions.java (page 368-369)

I THINK, THEREFORE I AM

Comedy ๏ Philosophy ๐ Carpentry ๐


14
Sommaire: Chapitre 6
 TABLEAUX dans Java
 Déclaration et utilisation de tableaux

 Passage de tableaux et éléments de tableaux comme


paramètres
 Tableaux d'objets

 Tri d'éléments dans un tableau: tri par sélection et tri


par insertion
 Tableaux à plusieurs dimensions

 La classe ArrayList

 Polygones et polylignes; types de bouton

15
Étudiez jusqu'ici
pour l'examen de mi-session:
Chapitre 1 à 6

Bonne Chance!
Examen de mi-session:
samedi le 6 mars à 13h00

Voir le site web du cours pour plus d'information