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 :

Je ne vois pas le container qui n'a pas de bouton


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 165
    Points : 73
    Points
    73
    Par défaut Je ne vois pas le container qui n'a pas de bouton
    Bonjour,

    Ma question est simple. Je suis entrain de m'entrainer aux interfaces graphiques à la main(sans netbeans où on la fait avec des clics ^^), et le container qui dois contenir la réponse final ne s'affiche pas tant qu'il n'y a pas de texte ce qui est très embêtant quand on démarre le programme.

    Le code :
    Citation Envoyé par Fenetre.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
    package calculatrice_gui;
     
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Font;
    import java.awt.GridLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
     
    /**
     *
     * @author emmanuel
     */
    public class Fenetre extends JFrame {
     
            public static void main(String[] args) {
            // TODO code application logic here
                //instantiation de l'objet
                Fenetre fen = new Fenetre();
        }
            //créaton du container principal
            JPanel container_ROOT = new JPanel();
            //création du container NORTH (la réponse)
            PanneauReponse container_NORTH = new PanneauReponse();
            //création du container CENTER (les chiffres, le point, le égal)
            JPanel container_CENTER = new JPanel();
            //création du container EAST (annulé,plus,moins,fois,diviser)
            JPanel container_EAST = new JPanel();
     
            //création des boutons :
            private JButton bouton_0 = new JButton("0");
            private JButton bouton_1 = new JButton("1");
            private JButton bouton_2 = new JButton("2");
            private JButton bouton_3 = new JButton("3");
            private JButton bouton_4 = new JButton("4");
            private JButton bouton_5 = new JButton("5");
            private JButton bouton_6 = new JButton("6");
            private JButton bouton_7 = new JButton("7");
            private JButton bouton_8 = new JButton("8");
            private JButton bouton_9 = new JButton("9");
            private JButton bouton_point = new JButton(".");
            private JButton bouton_egal = new JButton("=");
            private JButton bouton_plus = new JButton("+");
            private JButton bouton_moins = new JButton ("-");
            private JButton bouton_fois = new JButton ("*");
            private JButton bouton_diviser = new JButton("/");
            private JButton bouton_annuler = new JButton("C");
     
            //création du label de la réponse
            private JLabel label_reponse = new JLabel();
     
            //création des variables à utiliser
            private double result_temp;
            private double nombre1;
            private double nombre2;
     
     
     
            public Fenetre(){
            //Parametrage de la fenetre
            setVisible(true);        
            this.setTitle("Ma Calculatrice");
            this.setSize(350, 400);
            this.setLocationRelativeTo(null);
            this.setResizable(false);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
            //parametrage du container_ROOT
            container_ROOT.setBackground(Color.gray);
            container_ROOT.setLayout(new BorderLayout());
            container_ROOT.add(container_NORTH, BorderLayout.NORTH);
            container_ROOT.add(container_EAST, BorderLayout.EAST);
            container_ROOT.add(container_CENTER, BorderLayout.CENTER);
     
            //parametrage du container_NORTH
            container_NORTH.setBackground(Color.white);
     
            //parametrage du container_CENTER
            container_CENTER.setBackground(Color.gray);
            container_CENTER.setLayout(new GridLayout(4,3,5,5));
            container_CENTER.add(bouton_1);
            container_CENTER.add(bouton_2);
            container_CENTER.add(bouton_3);
            container_CENTER.add(bouton_4);
            container_CENTER.add(bouton_5);
            container_CENTER.add(bouton_6);
            container_CENTER.add(bouton_7);
            container_CENTER.add(bouton_8);
            container_CENTER.add(bouton_9);
            container_CENTER.add(bouton_point);
            container_CENTER.add(bouton_0);
            container_CENTER.add(bouton_egal);
            container_CENTER.setSize(200, 250);
     
            //parametrage du container_EAST
            container_EAST.setBackground(Color.gray);
            container_EAST.setLayout(new GridLayout(5,1,10,5));
            container_EAST.add(bouton_annuler);
            container_EAST.add(bouton_plus);
            container_EAST.add(bouton_moins);
            container_EAST.add(bouton_diviser);
            container_EAST.add(bouton_fois);
     
     
            //parametrage du label_reponse
            //Définition d'une police pour le label
            Font police = new Font("Tahoma", Font.BOLD, 16 );
            //On applique celle-ci aux JLabel
            label_reponse.setFont(police);
            //On change la couleur de police
            label_reponse.setForeground(Color.black);
            //Et on change l'alignement du texte grâce aux attributs static de la classe JLabel
            label_reponse.setHorizontalAlignment(JLabel.RIGHT);
     
            //on active le tout ^^
            this.setContentPane(container_ROOT);
            this.setVisible(true);
            }
     
    }
    Citation Envoyé par PanneauReponse.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
    package calculatrice_gui;
     
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import javax.swing.JPanel;
     
    /**
     *
     * @author emmanuel
     */
    public class PanneauReponse extends JPanel {
     
        @Override
            public void paintComponent(Graphics g){
            Graphics2D g2d = (Graphics2D) g;
     
            g2d.setColor(Color.black);
            g2d.drawRect(10, 10, 320, 50);
     
            }               
     
    }
    Merci d'avance de votre aide !

    Cordialement,

    rXp<!>

  2. #2
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Bonjour, pourquoi ne pas utiliser un JTextField pour afficher la réponse dans PanneauReponse?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class PanneauReponse extends JPanel {
        private JTextField _reponse = new JTextField();
        public PanneauReponse() {
            add(_reponse);
        }
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 165
    Points : 73
    Points
    73
    Par défaut
    Bonne idée Je vais faire cela. Je te remercie

    [EDIT]Peut-on définir la taille du textfield même quand il est vide ?

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Oui avec les constructeur qui prend en paramètre un entier représentant le nombre de caractères de ce composant.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 165
    Points : 73
    Points
    73
    Par défaut
    Aurais-tu son nom en tête ?
    Car j'ai chercher dans la liste fournis pas NetBeans, je n'ai rien trouver de semblable.
    J'ai trouver des : setSize,setMinimumSize mais ça ne marche pas.

    [EDIT] Avec la doc java j'ai trouver que c'est setColumns
    Mais pour définir la hauteur c'est beaucoup plus dure à trouver

  6. #6
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Si tu veux un affichage sur plusieurs lignes, tu peux utiliser un JTextArea.

    Si tu veux une seule ligne mais juste agrandir la taille, tu peux utiliser setPreferredSize().

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 165
    Points : 73
    Points
    73
    Par défaut
    Ouai merci mais le problème c'est que je ne comprend pas avec quoi je précise la taille puisque c'est pas des int mais des dimension.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dimension preferredSize = ???;
            _reponse.setPreferredSize(preferredSize);

  8. #8
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Il te faut un peu de curiosité Dimension(int width, int height)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dimension preferredSize = new Dimension(100, 100);
    _reponse.setPreferredSize(preferredSize);

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 165
    Points : 73
    Points
    73
    Par défaut
    Je saurais a l'avenir Merci à tous maintenant que le graphics est fini il reste plus que la partie facile

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/05/2013, 10h04
  2. Réponses: 1
    Dernier message: 13/02/2012, 11h16
  3. Réponses: 7
    Dernier message: 25/01/2012, 11h29
  4. Réponses: 2
    Dernier message: 04/12/2011, 19h42
  5. Réponses: 1
    Dernier message: 10/09/2008, 11h22

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