SRC2 TP de Java programmation Java
TP interfaces graphiques - Java
.Ce TP n'est qu'une très courte introduction aux interfaces graphiques, en utilisant l'API java Swing. L'objectif serait de développer une interface graphique pour votre projet (c'est-à-dire une fenêtre graphique où l'utilisateur peut demander la création d'un nouveau vaisseau, ou bien d'une nouvelle personne, les nommer, etc... Cela serait beaucoup plus convivial que votre actuelle classe Univers !).
En deux mots pour introduire Swing (on peut aussi utiliser AWT pour faire des interfaces graphiques) : JFrame : la fenêtre principale est souvent une Jframe, dont va hériter notre fenêtre principale :
public class MonInterface extends JFrame{.... Une JFrame a des attributs permettant de la dénir (sa taille, etc...), des méthodes à aller voir dans la documentation (en particulier add() qui permet de lui rajouter des composants). Elle n'est pas visible par défaut d'où l'intérêt de la ligne maFenetre.setVisible(true).
Composants : dans cette fenêtre, on peut rajouter diérents composants : chacun de ces composants est géré par une classe (commençant par la lettre J dans le cas de Swing).
Des boutons (JButton)
Des zones de texte (JTextField). C'est là où l'utilisateur rentrera le nom du vaisseau par exemple...
Des labels (JLabel). On y rentre un texte qui n'est pas modiable par l'utilisateur (comme légende par exemple).
Des comboboxes (JComboBox). Ce sont des listes déroulantes.
Des checkboxes (JCheckBox). Ce sont des cases à cocher.
Des boutons radios (JOptionPane). Ce sont des fenêtres de dialogue (conrmation, avertissement...).
Des barres de menu (JMenuBar).
Des panneaux pour regrouper plusieurs composants liés entre eux (JPanel).
etc...
LayoutManager : le placement des composants peut être donné en absolu (coordonnées du pixel en haut à gauche...), mais on utilise plutôt un LayoutManager pour gérer le placement des composants (utiliser la mé- thode setLayout d'un JPanel ou d'un JFrame par exemple, qui peuvent contenir d'autres composants). Selon le LayoutManager que vous allez choisir (GridLayout, BorderLayout, GridBagLayout, BoxLayout, FlowLayout (manager par défaut)), vos composants seront ordonnés diéremment les uns par rapport aux autres.
Evénements : La plupart de ces composants savent réagir à des événements (ou en créer), comme un click de souris, un changement de focus, etc... Un composant qui reçoit un événement est appelé un auditeur (listener).
Voir http://prevert.upmf-grenoble.fr/Prog/Java/swing/evenements.html.
Exercice 1 - Premières interfaces à l'aide d'un tutoriel
N'oubliez pas d'importer les composants de Swing dont vous aurez besoin ! import javax.swing.*.
1. Copiez le premier exemple du tutoriel http://zetcode.com/tutorials/javaswingtutorial/firstprograms/
(après avoir créé un nouveau projet java, bien sûr), en comprenant bien le rôle de chaque phrase. Testez.
2. Copiez maintenant l'exemple de la section Buttons. Testez. Il y a une ligne close.setBounds(50, 60, 80, 30);. Dans la documentation de quelle classe doit-on chercher pour savoir ce que fait exactement cette méthode setBound() ?
3. Après avoir agrandi légèrement la fenêtre principale, placez (en copiant le code d'un des deux autres boutons et en l'adaptant...) un troisième bouton à droite des deux premiers (très légèrement plus petit) qui écrira bonjour à l'écran quand on clique dessus.
4. Ici, les composants sont placés en absolu grâce à la méthode setBounds() et parce que les LayoutManager ont été désactivés grâce à la ligne panel.setLayout(null);. Retirez cette ligne (du coup, le placement des boutons est géré par le LayoutManager FlowLayout, qui place tout sur une même ligne tant qu'il y a de la place, à la ligne sinon). Du coup, les méthodes setBounds() ne sont plus autorisées... Essayez d'adapter le code pour qu'il fonctionne de nouveau (on vous aidant de la documentation !).
SRC2 TP de Java programmation Java
Exercice 2 - Première interface personnelle !
Faites un formulaire avec un bouton, une checkbox (choix du sexe), une combobox (choix de la ville parmi 4 possibles), un texteld (votre nom), et un label, dans lequel il n'y a d'abord rien écrit, et où apparaît la phrase
"bonjour monsieur truc, de Tarascon" si vous vous appelez truc, que votre ville est Tarascon, et que vous êtes un homme. Vous pouvez prendre le layout de votre choix ; testez en plusieurs.
Exercice 3 - Première calculatrice
Je vous laisse suivre le tutoriel http://java.developpez.com/livres/javaEnfants/?page=calculatrice : co- piez le code de la partie VII-C. Faites varier ensuite les LayoutManager en suivant le tutoriel.