Table des matières

Programmation graphique

  1. Principes de base
  2. Composants et les conteneurs
  3. Gestion de mise en disposition (mise en forme ou layout)
  4. Gestion des événements
  5. Boîtes de dialogues
  6. Architecture MVC (Modèle Vue Controleur)

Principes de base

Composants et conteneurs

Couches de contenu pour les panneaux

Gestionnaires de mise en disposition

BorderLayout

FlowLaout

GridLayout

 GridLayout

Exemple d'application graphique

JFrame f = new JFrame("Dessins de formes");
JPanel jHaut = new JPanel();
jDessin = new PanneauDessin();
JPanel jBas = new JPanel();
JButton bNouvFigure = new JButton("Nouvelle forme");
tfCommande = new JTextField(15);
JLabel lStatusBar = new JLabel("");
 
jHaut.setLayout(new FlowLayout());
jHaut.add(tfCommande);
jHaut.add(bNouvFigure);
 
jBas.add(lStatusBar);
 
jDessin.setBackground(Color.WHITE);
 
f.setLayout(new BorderLayout());
 
f.add(jHaut, BorderLayout.NORTH);
f.add(jDessin, BorderLayout.CENTER);
f.add(jBas, BorderLayout.SOUTH);
 
bNouvFigure.addActionListener(this);
 
f.setSize(600,500);
f.setLocation(300,300);
f.setVisible(true);

Exemple de menu Swing

miOuvrir = new JMenuItem("Ouvrir...");
miEnregistrer = new JMenuItem("Enregistrer...");
miImporterImage = new JMenuItem("Importer une image...");
miQuitter= new JMenuItem("Quitter");
 
miTranslation = new JMenuItem("Faire une translation...");
miZoom = new JMenuItem("Faire un zoom...");
 
mFichier = new JMenu("Fichier");
mOperations = new JMenu("Operations");
 
mFichier.add(miOuvrir);
mFichier.add(miEnregistrer);
mFichier.add(miImporterImage);
mFichier.addSeparator();
mFichier.add(miQuitter);

Panneau

pnlCentreHaut.setBorder(javax.swing.BorderFactory.createTitledBorder("Sélection"));
lblSelection.setFont(new java.awt.Font("Lucida Grande", 1, 14)); // NOI18N
lblSelection.setText("Aucune");

Boîtes de dialogue

  1. Les boîtes standards
  2. Le sélecteur de couleur
  3. Le sélecteur de fichiers

Boites standards

  1. boite de message
  2. boite de confirmation
  3. boite d'entrée (input box)

Il faut utiliser JDialog. Il faut généralement passer par les méthodes statique (show()) de la classe JOptionPane.

int reponse = JOptionPane.showConfirmDialog(this,"Voulez-vous vraiment quitter ?", "Titre", typeOption, typeMessage);
if (reponse == JOptionPane.YES_OPTION)
  System.exit(0);

“numération des paramètres :

  1. Le premier argument d'une méthode show est la fenêtre parente de la boîte de dialogue. La boite de dialogue s'affiche au centre de sa fenêtre parente.
  2. Le messages (String)
  3. Le titre (String)
  4. typeOption est un tableau de boutons. Il y en a des prédéfinies dans JOptionPane : YES_NO_CANCEL_OPTION
  5. typeMessage → type de message (erreur, information etc) : WARNING_MESSAGE, INFORMATION_MESSAGE

ColorChooser

miCouleurFond.addActionPerformed(ActionEvent e) {
  new ActionListener() {
    public void actionPerformed(ActionEvent e) {
      Color coul = JColorChooser.showDialog(f,"Choisir une couleur", Color.RED);
      if (coul != null) 
        f.getContentPane().setBackground(coul);
    }
  }

FileChooser

JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
chooser.setMultiSelectionEnabled(true);
int result = chooser.showOpenDialog(parent);
int result = chooser.showDialog(parent, "Select");
String filename = chooser.getSelectedFile().getPath();

Architecture MVC