Onglets avec JTabbedPane ?
Bonjour a tous ! Voila je viens de me mettre au java avec eclipse mais j'ai un probleme :
J'ai cree une calculatrice en suivant le tuto "JavaEnfans.pdf" du site. Mais je voudrait avoir des onglets mais je ne sais pas comment faire. Dans le pdf, il parle du JTabbedPane. Pourrais-je avoir des infos la-dessus? Merci
Voila le code que j'ai deja. Je voudrais incorporer 2 onglets : 1 calculatrice et un autre A propos.
Code de Calculatrice.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
| import javax.swing.*;
import java.awt.GridLayout;
import java.awt.BorderLayout;
public class Calculatrice {
// Déclaration de tous les composants de la calculatrice.
JPanel contenuFenêtre;
JTextField champAffichage;
JTextField TextEgale;
JButton bouton0;
JButton bouton1;
JButton bouton2;
JButton bouton3;
JButton bouton4;
JButton bouton5;
JButton bouton6;
JButton bouton7;
JButton bouton8;
JButton bouton9;
JButton boutonVirgule;
JButton boutonEgale;
JButton boutonPlus;
JButton boutonFois;
JButton boutonMoins;
JButton boutonDivise;
JPanel panneauChiffres;
// Le constructeur crée les composants en mémoire
// et les ajoute au cadre en utilisant une combinaison
// de Borderlayout et Gridlayout
Calculatrice() {
contenuFenêtre = new JPanel();
// Affecte un gestionnaire de présentation à ce panneau
BorderLayout dispositionl = new BorderLayout();
contenuFenêtre.setLayout(dispositionl);
// Crée le champ d'affichage et le positionne dans
// la zone nord de la fenêtre
champAffichage = new JTextField(30);
TextEgale = new JTextField(30);
contenuFenêtre.add("North", champAffichage);
contenuFenêtre.add("South", TextEgale);
// Crée les boutons en utilisant le constructeur de
// la classe JButton qui prend en paramètre le libellé
// du bouton
bouton0 = new JButton("0");
bouton1 = new JButton("1");
bouton2 = new JButton("2");
bouton3 = new JButton("3");
bouton4 = new JButton("4");
bouton5 = new JButton("5");
bouton6 = new JButton("6");
bouton7 = new JButton("7");
bouton8 = new JButton("8");
bouton9 = new JButton("9");
boutonVirgule = new JButton(",");
boutonPlus = new JButton ("+");
boutonFois = new JButton ("*");
boutonMoins = new JButton ("-");
boutonDivise = new JButton ("/");
boutonEgale = new JButton("=");
TextEgale = new JTextField ("");
//Crée le panneau avec le quadrillage qui contient
//les 12 boutons les 10 boutons numériques et ceux
//représentant la virgule et le signe égale
panneauChiffres = new JPanel();
GridLayout disposition2 = new GridLayout(5, 3);
panneauChiffres.setLayout(disposition2);
//Ajoute les contrôles au panneau panneauChiffres
panneauChiffres.add(bouton1);
panneauChiffres.add(bouton2);
panneauChiffres.add(bouton3);
panneauChiffres.add(bouton4);
panneauChiffres.add(bouton5);
panneauChiffres.add(bouton6);
panneauChiffres.add(bouton7);
panneauChiffres.add(bouton8);
panneauChiffres.add(bouton9);
panneauChiffres.add(bouton0);
panneauChiffres.add(boutonVirgule);
panneauChiffres.add(boutonEgale);
panneauChiffres.add(boutonPlus);
panneauChiffres.add(boutonMoins);
panneauChiffres.add(boutonFois);
panneauChiffres.add(boutonDivise);
//Ajoute panneauChiffres à la zone centrale de la
//fenêtre
contenuFenêtre.add("Center", panneauChiffres);
//Crée le cadre et lui affecte son contenu
JFrame frame = new JFrame("Calculatrice");
frame.setContentPane(contenuFenêtre);
//Affecte à la fenêtre des dimensions suffisantes pour
//prendre en compte tous les contrôles
frame.pack();
//Enfin, affiche la fenêtre
frame.setVisible(true);
// Instancie le récepteur d'événements et l'enregistre
// auprès de chaque bouton
MoteurCalcul moteurCalcul = new MoteurCalcul(this);
bouton0.addActionListener(moteurCalcul);
bouton1.addActionListener(moteurCalcul);
bouton2.addActionListener(moteurCalcul);
bouton3.addActionListener(moteurCalcul);
bouton4.addActionListener(moteurCalcul);
bouton5.addActionListener(moteurCalcul);
bouton6.addActionListener(moteurCalcul);
bouton7.addActionListener(moteurCalcul);
bouton8.addActionListener(moteurCalcul);
bouton9.addActionListener(moteurCalcul);
boutonVirgule.addActionListener(moteurCalcul);
boutonPlus.addActionListener(moteurCalcul);
boutonMoins.addActionListener(moteurCalcul);
boutonDivise.addActionListener(moteurCalcul);
boutonFois.addActionListener(moteurCalcul);
boutonEgale.addActionListener(moteurCalcul);
}
public static void main(String[] args) {
Calculatrice calc = new Calculatrice();
}
} |
Code de MoteurCalcul.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
| import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.text.NumberFormat;
import java.text.ParsePosition;
import javax.swing.JButton;
public class MoteurCalcul implements ActionListener {
Calculatrice parent; // une référence à la Calculatrice
char actionSélectionnée = ' '; // +, -, /, ou *
double résultatCourant = 0;
NumberFormat formatNombres = NumberFormat.getInstance();
// un objet capable de lire et présenter les nombres
// Le constructeur stocke la référence à la fenêtre
// Calculatrice dans la variable membre parent
MoteurCalcul(Calculatrice parent) {
this.parent = parent;
}
public void actionPerformed(ActionEvent événement) {
// Retrouve la source de l'action
JButton boutonCliqué = (JButton) événement.getSource();
String texteChampAffichage =
parent.champAffichage.getText();
double valeurAffichée = 0;
// Retrouve le nombre présenté dans le champ texte
// s'il n'est pas vide
if (!"".equals(texteChampAffichage)) {
valeurAffichée =
// analyse la chaîne de caractères
formatNombres.parse(
texteChampAffichage,
new ParsePosition(0) /* ne sert pas */).
// puis donne sa valeur en tant que double
doubleValue();
}
Object sourceEvénement = événement.getSource();
// Pour chaque bouton d'action, mémorise l'action
// sélectionnée, +, -, /, ou *, stocke la valeur courante
// dans la variable résultatCourant et vide le champ
// Affichage avant l'entrée du nombre suivant
if (sourceEvénement == parent.boutonPlus) {
actionSélectionnée = '+';
résultatCourant = valeurAffichée;
parent.champAffichage.setText("");
}
else if (sourceEvénement == parent.boutonMoins) {
actionSélectionnée = '-';
résultatCourant = valeurAffichée;
parent.champAffichage.setText("");
}
else if (sourceEvénement == parent.boutonDivise) {
actionSélectionnée = '/';
résultatCourant = valeurAffichée;
parent.champAffichage.setText("");
}
else if (sourceEvénement == parent.boutonFois) {
actionSélectionnée = '*';
résultatCourant = valeurAffichée;
parent.champAffichage.setText("");
}
else if (sourceEvénement == parent.boutonEgale) {
// Effectue les calculs en fonction de actionSélectionnée
// Modifie la valeur de la variable résultatCourant
// et affiche le résultat
if (actionSélectionnée == '+') {
résultatCourant += valeurAffichée;
// Convertit le résultat en le transformant en String
// à l'aide de formatNombres
parent.champAffichage.setText(
formatNombres.format(résultatCourant));
}
else if (actionSélectionnée == '-') {
résultatCourant -= valeurAffichée;
parent.champAffichage.setText(
formatNombres.format(résultatCourant));
}
else if (actionSélectionnée == '/') {
résultatCourant /= valeurAffichée;
parent.champAffichage.setText(
formatNombres.format(résultatCourant));
}
else if (actionSélectionnée == '*') {
résultatCourant *= valeurAffichée;
parent.champAffichage.setText(
formatNombres.format(résultatCourant));
}
}
else {
// Pour tous les boutons numériques, ajoute le libellé
// du bouton au champ texte
String libelléBoutonCliqué = boutonCliqué.getText();
parent.champAffichage.setText(texteChampAffichage +
libelléBoutonCliqué);
}
}
} |
:P