Vous êtes sur la page 1sur 13

PROGRAMMATION JAVA

Interfaces graphiques

Enseignant: M. N’DOSSANI Année scolaire:2018-2019


SOMMAIRE

• Base du langage
• Les classes String / Vector/Arraylist /Arrays/
Énumération/ HashTable
• Les classes courants
• Interfaces graphiques
INTERFACES GRAPHIQUE

Interface graphique Swing


• Pour créer une application lourde java Le framework Swing permet de créer
graphique, il est nécessaire de créer des applications graphiques en Java.
une GUI (Graphical User Interface). Ce framework utilise différentes
classes pour dessiner les éléments
• On utilise principalement deux graphiques qui composeront
packages l'interface.
• ■ awt : abstract window toolkit ■ swing : Pour dessiner les éléments graphiques
• ■ plus performant qui composeront l'interface. Le
JPanel est un panneau qui peut
• ■ architecture MVC (Modèle Vue contenir d'autres composants
Controleur)
INTERFACES GRAPHIQUE

Fenêtre : JDialog Fenêtre : JOptionPane


• Fenêtre fille d’une application • Ce sont des boîtes de dialogues
• Apparaît au dessus d’une autre prédéfinies
fenêtre • 3 types de boites :
• Message d’information
• Modale signifie ne pas pouvoir JOptionPane.showMessageDialog(…)
interagir avec la fenêtre mère tant • Message contenant une question
que la boite de dialogue est JOptionPane.showConfirmDialog(…)
ouverte. • Message de saisie de données
JOptionPane.showInputDialog(…)
INTERFACES GRAPHIQUE
• // On ajoute le texte "Hello, World!" dans la fenêtre
frame.getContentPane().add(new JLabel("Hello,
Exemple: JFRAME •
World!"));

• import javax.swing.JFrame; • // On demande d'attribuer une taille minimale à la fenêtre

• import javax.swing.JLabel; • // (juste assez pour voir tous les composants)


frame.pack();
• public class HelloWorld {
• frame.setLocationRelativeTo(null);
• public static void main(String[] args) {
• // Centrer la fenêtre frame.setVisible(true);
• // On crée une fenêtre dont le titre est "Hello World!"
JFrame frame = new JFrame("Hello World!"); • // Rendre la fenêtre visible } }
• // La fenêtre doit se fermer quand on clique sur la croix rouge
frame.setDefaultCloseOperation(JFrame.DISPOSE
_ON_CLOSE);
INTERFACES GRAPHIQUE
Exemple :
import javax.swing.*; menuBar
import java.awt.event.*;
public class swing1 extends JFrame { • Le menuBar permet d'attacher un
public swing1() { menu à la JFrame. La méthode
super("titre de l'application"); setJMenuBar() permet d'affecter un
WindowListener l = new WindowAdapter() {
menu à la JFrame.
public void windowClosing(WindowEvent e){
System.exit(0);}
addWindowListener(l);
setSize(200,100);
setVisible(true); }
public static void main(String [] args){
JFrame frame = new swing1(); } }
import javax.swing.*;
Les événements associées à
import java.awt.*; un JFrame
public class TestJFrame6 { • import javax.swing.*;
public static void main(String argv[]) { • import java.awt.event.*;
JFrame f = new JFrame("ma fenetre"); • public class TestJFrame8 {
f.setSize(300,100); • public static void main(String argv[]) {
JButton b =new JButton("Mon bouton"); • JFrame f = new JFrame("ma fenetre");
f.getContentPane().add(b);
• f.setSize(300,100);
JMenuBar menuBar = new JMenuBar();
• f.setVisible(true);
f.setJMenuBar(menuBar);
• f.addWindowListener(new WindowAdapter() {
JMenu menu = new JMenu("Fichier");
• public void windowClosing(WindowEvent e) {
menu.add(menuItem);
• System.exit(0); } } );}}
menuBar.add(menu);
f.setVisible(true);}
}
INTERFACES GRAPHIQUE

Fenêtre : JFileChooser
• Un JFileChooser permet de
sélectionner un fichier en
parcourant l’arborescence du
système de fichier.
Exemple:
▫ JFileChooser fc = new JFileChooser();
int returnVal = fc.showOpenDialog(aFrame);
if (returnVal ==
JFileChooser.APPROVE_OPTION)
{ File file = fc.getSelectedFile();
}
INTERFACES GRAPHIQUE

Fenêtre : JColorChooser Contenaire


• Un JColorChooser permet de choisir • Les conteneurs contiennent et
une couleur. gèrent des composants graphiques.
• Une méthode : • Composants qui ont pour but
principal de contenir d’autres
• public static Color showDialog(Component composants.
c , String title , Color initialColor);
• Les principaux conteneurs :
• Jpanel
• JScrollPane
• JTabbedPane
INTERFACES GRAPHIQUE
• import java.awt.Graphics;
JPanel • import javax.swing.JPanel;
• Contient le fond + les contrôles de la public class Panneau extends JPanel
fenêtre {
• ■ Agence les composants, redessine
en cas de besoin... public void paintComponent(Graphics g){
• ■ On peut obtenir les dimensions du g.setColor(Color.ORANGE);
JPanel
• ■ On peut personnaliser n'importe g.fillOval(20, 20, 75, 75);}
quel composant (bouton, panel...) en }
réimplémentant
paintComponent(Graphics) : son
fond, un dessin
INTERFACES GRAPHIQUE
Les étiquettes : la classe Le composant JLabel permet d'afficher un texte
et/ou une icône en précisant leur alignement.
JLabel
import javax.swing.*;
• Cette classe possède plusieurs import java.awt.*;
public class TestJLabel1 {
constructeurs : public static void main(String argv[]) {
JFrame f = new JFrame("ma fenetre");
Constructeurs Rôle f.setSize(100,200);
JLabel() Création d'une instance sans texte ni image JPanel pannel = new JPanel();
JLabel jLabel1 =new JLabel("Mon texte dans JLabel");
JLabel(Icon) Création d'une instance en précisant l'image
pannel.add(jLabel1);
JLabel(Icon, int)
Création d'une instance en précisant l'image et l'alignement ImageIcon icone = new ImageIcon("book.gif");
horizontal
JLabel jLabel2 =new JLabel(icone);
JLabel(String) Création d'une instance en précisant le texte pannel.add(jLabel2);
Création d'une instance en précisant le texte, l'image et
JLabel jLabel3 =new JLabel("Mon
JLabel(String, Icon, int)
l'alignement horizontal texte",icone,SwingConstants.LEFT);
pannel.add(jLabel3);
Création d'une instance en précisant le texte et l'alignement
JLabel(String, int)
horizontal f.getContentPane().add(pannel);
f.setVisible(true); }}
INTERFACES GRAPHIQUE

Méthodes Rôle
setText() Permet d'initialiser ou de modifier le texte affiché
Indique si le composant est transparent (paramètre false) ou
setOpaque()
opaque (true)
Indique la couleur de fond du composant (setOpaque doit être à
setBackground()
true)
setFont() Permet de préciser la police du texte
setForeGround() Permet de préciser la couleur du texte
setHorizontalAlignment() Permet de modifier l'alignement horizontal du texte et de l'icône
setVerticalAlignment() Permet de modifier l'alignement vertical du texte et de l'icône
setHorizontalTextAlignment() Permet de modifier l'alignement horizontal du texte uniquement
Permet de modifier l'alignement vertical du texte uniquement
setVerticalTextAlignment() Exemple :
jLabel.setVerticalTextPosition(SwingConstants.TOP);
setIcon() Permet d'assigner une icône

setDisabledIcon() Permet de définir l'icône associée au JLabel lorsqu'il est désactivé


INTERFACES GRAPHIQUE
Un bouton peut recevoir des événements de type ActionEvents (le
bouton a été activé), ChangeEvents, et ItemEvents.

Les boutons import javax.swing.*;


import java.awt.event.*;
• Il existe plusieurs boutons définis par Swing.
public class TestJButton3 {
public static void main(String argv[]) {

JFrame f = new JFrame("ma fenetre");


f.setSize(300,100);
JPanel pannel = new JPanel();
JButton bouton1 = new JButton("Bouton1");
bouton1.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);} } );
pannel.add(bouton1);
f.getContentPane().add(pannel);
f.setVisible(true); }
}

Vous aimerez peut-être aussi