IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Onglets avec JTabbedPane ?


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut 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 : 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 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
    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é);
    }
    }
    }

  2. #2
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 165
    Par défaut
    salut,

    va voir ce lien, ils expliquent tout comment utiliser les differents composants, dont le JTextPane.
    lien ici http://java.sun.com/docs/books/tutor...ditorpane.html
    jerome

  3. #3
    Invité
    Invité(e)
    Par défaut
    merci mais ce n'est pas ca que je vais. Enfaite je voudrait plutot ca :http://java.sun.com/docs/books/tutor...abbedpane.html
    Je voudrait des onglets

  4. #4
    Membre éclairé Avatar de cysboy
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 221
    Par défaut
    J'ai utiliser ce composant récemment...
    Voilà comment je m'y suis pris (ceci va peu être mettre les puriste en colère mais çà fonctionne):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    JTabbedPane onglet = new JTabbedPane();
    onglet.setBackground(Color.white);
     
    JPanel pan1 = new JPanel();
    JPanel pan2 = new JPanel();
    //Met ce que tu veux dans tes conteneurs
     
    onglet.addTab("Titre onglet 1", pan1);
    onglet.addTab("Titre onglet 2", pan2);

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci mais pourrais ai-je avoir plus d'infos sur :

    les librairies
    J'ai deja du code comment je le rajoute dans un onglet?

    Merci

  6. #6
    Membre éclairé Avatar de cysboy
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 221
    Par défaut
    Pour la doc tu peux aller ICI.
    Et si tu as déjà des composants... Tu n'as plus qu'à les mettre sur un conteneur, ou alors mettre ton conteneur tout prêt sur ton JTabbedPane comme je t'ai mis en plus au dessus...

    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
     
    JTabbedPane onglet = new JTabbedPane();
    onglet.setBackground(Color.white);
     
    JPanel pan1 = new JPanel();
    pan1.add(new JLabel("Je suis dans l'onglet 1"));
    //etc
    JPanel pan2 = new JPanel();
    pan2.add(new JLabel("Je suis dans l'onglet 2"));
    //etc
    //Met ce que tu veux dans tes conteneurs
     
     
    //Tu les ajoutes enfin dans ton JTabbedPane
    onglet.addTab("Titre onglet 1", pan1);
    onglet.addTab("Titre onglet 2", pan2);

  7. #7
    Membre éclairé Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 584
    Par défaut
    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
     
    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);
     
                 JPanel aProposPanel = new JPanel();
     
                JTabbedPane tabbedPane= new JTabbedPane();
                tabbedPane.addTab("Calculatrice", contenuFenêtre);
                tabbedPane.addTab("A propos", aProposPanel );
     
    .................
    ...............

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Onglets dynamiques avec JTabbedPane
    Par Yann_69 dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 03/07/2012, 17h09
  2. Onglet avec JTabbedPane
    Par riderfun dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 27/01/2009, 14h36
  3. onglet avec calque
    Par cloeuf dans le forum Balisage (X)HTML et validation W3C
    Réponses: 17
    Dernier message: 12/01/2006, 14h16
  4. Problèmes avec JTabbedPane
    Par Baptiste Wicht dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 06/01/2006, 18h56
  5. Creer onglet avec forms9
    Par simpletz dans le forum Forms
    Réponses: 5
    Dernier message: 10/08/2005, 12h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo