1er novembre 2004 swing et interfaces graphiques - demoulin yann - dess rsi 1 swing et les...
Post on 03-Apr-2015
107 Views
Preview:
TRANSCRIPT
1er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
11
Swing et les Interfaces Swing et les Interfaces GraphiquesGraphiques
221er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
PlanPlan
IntroductionIntroduction
Le Package Swing (Liste exhaustive)Le Package Swing (Liste exhaustive)
Utilisation des ComposantsUtilisation des Composants
Les ÉvénementsLes Événements
Les Interfaces GraphiquesLes Interfaces Graphiques Les différents langagesLes différents langages Les Apparences « LookAndFeel »Les Apparences « LookAndFeel »
Exemple d’application SwingExemple d’application Swing
331er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
IntroductionIntroduction
Les Packages de JDKLes Packages de JDK
Le Package javaxLe Package javax
Le Sous Package javax.swingLe Sous Package javax.swing
441er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Les Packages Standard de JDK 1.4Les Packages Standard de JDK 1.4
audioaudioCOM & comCOM & comfontsfontsimagesimagesjavajavajava2djava2dJavaxJavaxlauncherlauncher
modelsmodels
netscapenetscape
orgorg
soundssounds
sunsun
sunwsunw
templatestemplates
551er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Le Package javaxLe Package javax
Le Package javax fut inclus dans JDK à partir de la Le Package javax fut inclus dans JDK à partir de la version 1.2 (Java 2)version 1.2 (Java 2)Dans ce package, nous trouvons différents sous Dans ce package, nous trouvons différents sous packages:packages:
accessibilityaccessibilitycryptocryptoimageioimageionamingnamingnetnetprintprintrmirmisecuritysecuritysoundsoundsqlsqlswingswingtransactiontransactionxmlxml
661er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Le Package SwingLe Package Swing
javax.swingjavax.swing
Composants BasiquesComposants Basiques
Composants TextesComposants Textes
Menus, Bar d’outils et Menus, Bar d’outils et ToolTipsToolTips
ContainersContainers
javax.swing.beaninfojavax.swing.beaninfo
javax.swing.beaninfo.imagesjavax.swing.beaninfo.images
javax.swing.border javax.swing.border
javax.swing.colorchooser javax.swing.colorchooser
javax.swing.event javax.swing.event
javax.swing.filechooserjavax.swing.filechooser
javax.swing.plaf javax.swing.plaf
javax.swing.plaf.basic javax.swing.plaf.basic
javax.swing.plaf.metaljavax.swing.plaf.metal
javax.swing.plaf.multijavax.swing.plaf.multi
javax.swing.table javax.swing.table
javax.swing.text javax.swing.text
javax.swing.text.htmljavax.swing.text.html
javax.swing.treejavax.swing.tree
javax.swing.undojavax.swing.undo
771er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Les Composants SwingLes Composants Swing
Composants BasiquesComposants Basiques JAppletJApplet JButtonJButton JCheckBoxJCheckBox JRadioButtonJRadioButton JToggleButtonJToggleButton JComboBoxJComboBox JListJList JSliderJSlider JTableJTable JTreeJTree JProgessBarJProgessBar JSpinnerJSpinner
881er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Les Composants SwingLes Composants Swing
Menus, Bar d’outils et ToolTips Menus, Bar d’outils et ToolTips JMenuBarJMenuBar JMenuJMenu JMenuItemJMenuItem JCheckBoxMenuItemJCheckBoxMenuItem JRadioButtonMenuItemJRadioButtonMenuItem JPopupMenuJPopupMenu JToolBarJToolBar JToolTip JToolTip
991er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Les Composants SwingLes Composants Swing
Composants TextesComposants Textes JPasswordFieldJPasswordField JTextFieldJTextField JTextAreaJTextArea JTextPaneJTextPane JEditorPaneJEditorPane
10101er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Les Composants TexteLes Composants Texte
JTextFieldJTextField
JPasswordFielJPasswordFieldd
JTextAreaJTextArea JEditorPaneJEditorPane
JTextPaneJTextPane
JTextComponentJTextComponent Légende
Texte Stylisé
Texte Ordinaire
Texte Simple Ligne
Texte Multi Ligne
11111er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Les Composants SwingLes Composants Swing
Containers Containers JOptionPaneJOptionPane JDialogJDialog JTabbedPaneJTabbedPane JSplitPaneJSplitPane JScrollPaneJScrollPane JFrameJFrame JInternalFrameJInternalFrame JDesktopPaneJDesktopPane JWindowJWindow
12121er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Layout et les containersLayout et les containers
Pour positionner un composant, nous avons plusieurs Pour positionner un composant, nous avons plusieurs positions prédéfinis. Ces positions qui sont proposés par positions prédéfinis. Ces positions qui sont proposés par Java sont:Java sont:
BorderLayout BorderLayout
BoxLayout BoxLayout
CardLayout CardLayout
FlowLayout FlowLayout
GridBagLayoutGridBagLayout
GridLayout GridLayout
13131er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Les Caractéristiques d’un Les Caractéristiques d’un JComponentJComponent
La plupart des composants Swing descendent de JComponent qui hérite de Container
Caractéristiques d’un JComponentBordureBordure Méthode setBorder(titledBorder1) pour spécifier une bordure autour
du composant. Avec titledBorder1 = new TitledBorder( BorderFactory.createEtchedBorder( Color.white,new Color( 156, 156, 158 ) ),"Radio Group");
Double-bufferingDouble-buffering 2 mémoires d’affichages existent : celle que l’on voit et celle où les composants Swing sont en train d’être dessinés. Évite le clignotement du tracé. setDoubleBuffered(false) permet de l’enlever
Tool tipsTool tips setToolTipText spécifie l’affichage d’un message d’aide lorsque le curseur est sur un objet
Navigation au clavierNavigation au clavier registerKeyboardAction autorise l’usage du clavier en plus de la souris pour manoeuvrer
14141er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Les Caractéristiques d’un Les Caractéristiques d’un JComponentJComponent
PropriétésPropriétés putProperty associe une propriété au composant
StyleStyle chaque composant a un pluggable LookAndFeel permettant au UIManager.setLookAndFeel global de fonctionner
PlacementPlacement contrôlé par setPreferredSize, setMinimumSize, setMaximumSize, setAlignmentX, et setAlignmentY
AccessibilitéAccessibilité pour les technologies d’assistance
LocalisationLocalisation permet des comportements différents en fonction du pays, de la langue, etc.
15151er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Utilisation des Composants SwingUtilisation des Composants Swing
JFrame
JPanel (ContentPane)
JButton JButton JPanel
JScrollPaneJTextField
JList
16161er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Déclaration des ComposantsDéclaration des Composants
public class Cadre extends JFrame {public class Cadre extends JFrame {
JButton jButton1 = new JButton();JButton jButton1 = new JButton();JButton jButton2 = new JButton();JButton jButton2 = new JButton();JTree jTree1 = new JTree();JTree jTree1 = new JTree();JTextField jTextField1 = new JTextField();JTextField jTextField1 = new JTextField();
JPanel contentPane;JPanel contentPane;JPanel jPanel1 = new JPanel();JPanel jPanel1 = new JPanel();JScrollPane jScrollPane1 = new JScrollPane();JScrollPane jScrollPane1 = new JScrollPane();
BorderLayout borderLayout1 = new BorderLayout();BorderLayout borderLayout1 = new BorderLayout();
17171er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Initialisation des ComposantsInitialisation des Composantsprivate void Initialization() throws Exception {private void Initialization() throws Exception {
this.setSize(new Dimension(400, 300));this.setSize(new Dimension(400, 300));this.setTitle("Titre du cadre");this.setTitle("Titre du cadre");
contentPane = (JPanel) this.getContentPane();contentPane = (JPanel) this.getContentPane();contentPane.setLayout(null);contentPane.setLayout(null);
jButton1.setBounds(new Rectangle(23, 60, 102, 32));jButton1.setBounds(new Rectangle(23, 60, 102, 32));jButton1.setText("jButton1");jButton1.setText("jButton1");
jButton2.setBounds(new Rectangle(23, 104, 102, 32));jButton2.setBounds(new Rectangle(23, 104, 102, 32));jButton2.setText("jButton2");jButton2.setText("jButton2");
jPanel1.setBorder(BorderFactory.createEtchedBorder());jPanel1.setBorder(BorderFactory.createEtchedBorder());jPanel1.setBounds(new Rectangle(141, 35, 234, 215));jPanel1.setBounds(new Rectangle(141, 35, 234, 215));jPanel1.setLayout(borderLayout1);jPanel1.setLayout(borderLayout1);
jTextField1.setText("jTextField1");jTextField1.setText("jTextField1");
18181er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Initialisation des ComposantsInitialisation des Composants
contentPane.add(jButton1, null);contentPane.add(jButton1, null);contentPane.add(jButton2, null);contentPane.add(jButton2, null);contentPane.add(jPanel1, null);contentPane.add(jPanel1, null);jPanel1.add(jScrollPane1, BorderLayout.CENTER);jPanel1.add(jScrollPane1, BorderLayout.CENTER);jPanel1.add(jTextField1, BorderLayout.NORTH);jPanel1.add(jTextField1, BorderLayout.NORTH);jScrollPane1.getViewport().add(jTree1, null);jScrollPane1.getViewport().add(jTree1, null);
}}
19191er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Les ÉvénementsLes Événements
Nous allons voir comment nous pouvons ajouter un événement à un Nous allons voir comment nous pouvons ajouter un événement à un bouton afin d’effectuer la fonction souhaitée lorsque l’on clique bouton afin d’effectuer la fonction souhaitée lorsque l’on clique dessus. Nous allons donc voir un exemple pour créer un menu et dessus. Nous allons donc voir un exemple pour créer un menu et affecter au bouton quitter du menu fichier l’action nécessaire pour affecter au bouton quitter du menu fichier l’action nécessaire pour terminer le processus.terminer le processus.
Pour avoir un menu et avoir un bouton quitter, nous ajoutons alors Pour avoir un menu et avoir un bouton quitter, nous ajoutons alors les éléments suivants à la classe JFrame :les éléments suivants à la classe JFrame :
La barre de Menu de l’applicationLa barre de Menu de l’applicationJMenuBar jMenuBar1 = new JMenuBar();JMenuBar jMenuBar1 = new JMenuBar();
Le Menu FichierLe Menu FichierJMenu jMenuFile = new JMenu();JMenu jMenuFile = new JMenu();
Le bouton QuitterLe bouton QuitterJMenuItem jMenuQuitter = new JMenuItem();JMenuItem jMenuQuitter = new JMenuItem();
20201er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Les ÉvénementsLes Événements
Dans la méthode d’initialisation de la classe, nous ajoutons ce qui suit pour:Dans la méthode d’initialisation de la classe, nous ajoutons ce qui suit pour:
Ajouter la barre de menu à l’applicationAjouter la barre de menu à l’applicationthis.setJMenuBar(jMenuBar1);this.setJMenuBar(jMenuBar1);
Ajouter le Menu Fichier à la barre de menuAjouter le Menu Fichier à la barre de menujMenuFile.setText("Fichier");jMenuFile.setText("Fichier");jMenuBar1.add(jMenuFile);jMenuBar1.add(jMenuFile);
Ajouter le bouton au menu fichier et de son listenerAjouter le bouton au menu fichier et de son listenerjMenuQuitter.setText("Quitter");jMenuQuitter.setText("Quitter");jMenuQuitter.addActionListener(new Cadre1_jMenuQuitter_actionAdapter(this));jMenuQuitter.addActionListener(new Cadre1_jMenuQuitter_actionAdapter(this));jMenuFile.add(jMenuQuitter);jMenuFile.add(jMenuQuitter);
Méthode associée au bouton QuitterMéthode associée au bouton Quitterpublic void jMenuFileExit_actionPerformed(ActionEvent e) public void jMenuFileExit_actionPerformed(ActionEvent e) {{ System.exit(0);System.exit(0);}}
21211er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Les ÉvénementsLes ÉvénementsA présent, nous devons ajouter un événement à notre bouton nous avons besoin de définir une A présent, nous devons ajouter un événement à notre bouton nous avons besoin de définir une classe particulière qui fera appel à la méthode que nous aurons choisi. Dans notre exemple cette classe particulière qui fera appel à la méthode que nous aurons choisi. Dans notre exemple cette méthode s’appelle méthode s’appelle jMenuFileExit_actionPerformed(actionEvent) jMenuFileExit_actionPerformed(actionEvent) qui est déclarée dans notre qui est déclarée dans notre classeclasse JFrame. JFrame.
class Cadre1_jMenuQuitter_actionAdapter implements java.awt.event.ActionListener class Cadre1_jMenuQuitter_actionAdapter implements java.awt.event.ActionListener {{
Cadre1 adaptee;Cadre1 adaptee;
Cadre1_jMenuQuitter_actionAdapter(Cadre1 adaptee) Cadre1_jMenuQuitter_actionAdapter(Cadre1 adaptee) {{
this.adaptee = adaptee;this.adaptee = adaptee;}}
public void actionPerformed(ActionEvent e) public void actionPerformed(ActionEvent e) {{
adaptee.jMenuFileExit_actionPerformed(e);adaptee.jMenuFileExit_actionPerformed(e);}}
}}
22221er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Les Interfaces graphiquesLes Interfaces graphiques
Il faut savoir que différents langages peuvent nous permettre de Il faut savoir que différents langages peuvent nous permettre de créer des interfaces graphiques. Nous pouvons avoir le C++, le créer des interfaces graphiques. Nous pouvons avoir le C++, le Pascal avec Delphi mais encore Java que nous voyons depuis le Pascal avec Delphi mais encore Java que nous voyons depuis le début de cet exposé. début de cet exposé.
La différence entre Java et les autres langages de programmation, La différence entre Java et les autres langages de programmation, est que nous pouvons lancer une application Java, qui a été au est que nous pouvons lancer une application Java, qui a été au préalable compilée sur une plateforme quelconque, sur n’importe préalable compilée sur une plateforme quelconque, sur n’importe quelle machine à partir du moment où cette machine possède une quelle machine à partir du moment où cette machine possède une machine virtuelle (ou JVM pour Java Virtual Machine). machine virtuelle (ou JVM pour Java Virtual Machine).
Pour plus de faciliter afin de créer ce genre d’application, il est Pour plus de faciliter afin de créer ce genre d’application, il est conseillé d’utiliser un éditeur de code Java comme JBuilder que conseillé d’utiliser un éditeur de code Java comme JBuilder que nous préférerons mais payant en version complète ou encore nous préférerons mais payant en version complète ou encore Eclipse qui lui est gratuit mais moins convivial.Eclipse qui lui est gratuit mais moins convivial.
23231er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Les Apparences LookAndFeelLes Apparences LookAndFeelGrâce à java, nous avons la possibilité de choisir l’apparence. Pour changer l’aspect de Grâce à java, nous avons la possibilité de choisir l’apparence. Pour changer l’aspect de l’application, il suffit de mettre ce qui suit dans la méthode main.l’application, il suffit de mettre ce qui suit dans la méthode main.
Pour choisir l’apparence de la plateforme où la machine virtuelle est lancéePour choisir l’apparence de la plateforme où la machine virtuelle est lancéeUIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
Pour choisir l’apparence MotifPour choisir l’apparence MotifUIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
Pour choisir l’apparence MetalPour choisir l’apparence Metal
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
Pour choisir l’apparence WindowsPour choisir l’apparence WindowsUIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
24241er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Les Apparences « LookAndFeel » Les Apparences « LookAndFeel » WindowsWindows
25251er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Les Apparences « LookAndFeel » Les Apparences « LookAndFeel » Métal (Par Défaut)Métal (Par Défaut)
26261er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
Les Apparences « LookAndFeel » Les Apparences « LookAndFeel » MotifMotif
27271er novembre 20041er novembre 2004 Swing et Interfaces Graphiques - DemouSwing et Interfaces Graphiques - Demoulin Yann - DESS RSIlin Yann - DESS RSI
BibliographieBibliographie
Informations sur le Net (Google)Informations sur le Net (Google)
Programmer en Java - Claude Delannoy - Programmer en Java - Claude Delannoy - Ed. EyrollesEd. Eyrolles
Aide Borland JBuilderAide Borland JBuilder
top related