Powerpoint

publicité
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.*;
import java.awt.*;
import java.awt.event.*;
…
private JLabel saying;
private JCheckBox bold, italic;
private JPanel primary;
…
{
saying = new JLabel(“Say it with style!”);
bold = new JCheckBox(“Bold”);
italic = new JCheckBox(“Italic”);
…
StyleListener listerner = new
StyleListerner();
bold.addItemListener(listener);
italic.addItemListener(listener);
primary = new JPanel();
primary.add(saying);
primary.add(bold);
primary.add(italic);
primary.setBackground(Color.cyan);
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
Téléchargement