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 de MoteurCalcul.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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é); } } }![]()
Partager