Ex1_4.java
/**
* Calcul de la valeur TTC d'une vente
* Composants utilisés: JButton, JTextField,JPanel et
* JLabel.
*/
import java.awt.*; /* Dimension, GridLayout, BorderLayout*/
import java.awt.event.*;/* ActionListener*/
import javax.swing.*;
public class Ex1_4 implements ActionListener {
/* L'interface ActionListener dérivée de java.util.EventListener est
utilisée pour écouter des événements de type "Action", Une classe qui doit
traiter des événements de type "Action" doit implémenter ou être dérivée d'une
classe qui implémente cette interface. l'objet créé à partir de cette classe
doit être enregistré comme écouteur pour au moins un de ces composants à l'aide
de la méthode addActionListener et quand l'événement survient cet objet appelle la
méthode actionPerformed.*/
// Déclaration des composants
JFrame fCalcul;
JPanel pnlCalcul;
JTextField txtHt;
JLabel txtTva;
JLabel lblTtc,txtTtc,lblTva,lblHt ;
JButton btnCalculer;
// Création et affichage de la fenêtre
public Ex1_4() {
//Création et dimensionnement de la fenêtre.
fCalcul = new JFrame("Calcul de la valeur TTC");
fCalcul.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fCalcul.setSize(new Dimension(120, 40));
/*Dimension public class Dimension extends java.awt.geom.Dimension2D
implements java.io.Serializable encapsule la largeur et la hauteur
d'un objet d.width, d.height*/
//Création et dimensionnement d'un cadre.
pnlCalcul = new JPanel(new GridLayout(4, 2));
/* GridLayout est un gestionnaire de positionnement qui met les composants
d'un conteneur dans une grille rectangulaire.*/
//Ajout des composants.
composants();
//Bouton par défaut.
fCalcul.getRootPane().setDefaultButton(btnCalculer);
/*la méthode getRootPane retourne un objet de type JRootPane et la
la méthode setDefaultButton définit l'action par défaut de la touche
entrée*/
//Définition d'un racourci clavier pour le bouton
btnCalculer.setMnemonic('A');
/* ALT + A active le bouton
//Ajout du panneau à la fenêtre.
fCalcul.add(pnlCalcul, BorderLayout.CENTER);
/* NORTH, WEST, EAST, SOUTH, CENTER, permet de positionner un composant
dans une des 5 régions, chaque région ne pouvant contenir plus d'un composant
*/
//Affichage de la fenêtre.
fCalcul.pack();
fCalcul.setVisible(true);
}
/**
* Création des composants.
*/
private void composants() {
//Create widgets.
lblHt=new JLabel("HT:", SwingConstants.RIGHT);
/*SwingConstants une classe contenant des constantes pour définir la position
et l'orientation des composants*/
txtHt=new JTextField("0");
lblTva=new JLabel("TVA:", SwingConstants.LEADING);
txtTva=new JLabel("0");
txtTtc=new JLabel("0");
lblTtc=new JLabel("TTC:", SwingConstants.RIGHT);
btnCalculer=new JButton("Calculer");
btnCalculer.addActionListener(this);
//Ajout des composants à l'objet panel.
pnlCalcul.add(lblHt);
pnlCalcul.add(txtHt);
pnlCalcul.add(lblTva);
pnlCalcul.add(txtTva);
pnlCalcul.add(lblTtc);
pnlCalcul.add(txtTtc);
pnlCalcul.add(btnCalculer);
}
public void actionPerformed(ActionEvent event) {
// Réponse à l'événement clic sur le bouton btnCalculer
int ht = Integer.parseInt(txtHt.getText());
/* La mise en forme des composants peut aussi être définie à l'aide de
balises HTML */
// définition de la couleur du texte
txtTva.setBackground(Color.GREEN);
/* objet constant de type Color */
txtTva.setText("<HTML> <font color=red>" +ht*0.2+ "</font></HTML>");
//Ecouter les événements provenant du bouton Calculer .
txtTtc.setText(""+ht*1.2);
}
/**
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event-dispatching thread.
*/
private static void afficher() {
// Ajouter des éléments de décoration à la fenêtre
JFrame.setDefaultLookAndFeelDecorated(true);
Ex1_4 fCalculer = new Ex1_4();
}
public static void main(String[] args) {
afficher();
}
}