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

Composants Java Discussion :

JTextArea avec le JPanel


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 12
    Par défaut JTextArea avec le JPanel
    le problème c'est que mon JTextArea ne s’affiche qu'on j’exécute et je ne sais pas qu'il est le probleme
    voici mon code
    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
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
     
        package mon_application;
        import java.awt.*;
        import java.awt.event.*;
        import java.awt.image.*;
        import java.io.*;
        import javax.swing.*;
        import javax.imageio.ImageIO;
        import java.awt.image.BufferedImage.*;
        public class  texarea_img extends JFrame {
        JMenu M_sym , M_asym ,M_sign_hach ,M_stegano,M_Fag ,M_help ;
        JMenuItem M_sym_DES,M_sym_AES,M_sym_Cesar,M_asym_RSA,M_sign_hach_MD5,M_sign_hach_SHA1,M_sign_hach_DSA,M_Fag_MD5,M_Fag_AES,M_Fag_RSA,M_Fag_DES;
        private JPanel pan1 = new JPanel();
        private JPanel pan2 = new JPanel();
        private JPanel pan3 = new JPanel();
        private JPanel pan4 = new JPanel();
        private JButton B1 = new JButton("charger l'image : ");
        private JButton B2 = new JButton("dissimuler le texte: ");
        private JLabel L1 = new JLabel("");
        private JTextField T1 = new JTextField("");
        private JTextField T2 = new JTextField("");
        private JTextArea Ta =new JTextArea();
        public  texarea_img (){
            // Ta=new JTextArea(10);
             Ta.setBounds(20, 20, 40, 30);
           Ta.setFont(new java.awt.Font("Bookman Old Style", 3, 20));
        M_sym_Cesar = new JMenuItem("Cesar");
        M_sym_Cesar.setFont(new java.awt.Font("Bookman Old Style", 3, 15));
        JMenuBar menuBar = new JMenuBar();
        JMenu M_sym = new JMenu("Chiffrement Symetrique");
        JMenu M_asym = new JMenu("Chiffrement Asymetrique");
        JMenu M_sign_hach = new JMenu("Sygnature et Hachage");
        JMenu M_stegano = new JMenu("Steganographie");
        JMenu M_Fag = new JMenu("FAQ");
        JMenu M_help = new JMenu("?");
        M_sym.setFont(new java.awt.Font("Bookman Old Style", 3, 15));
        M_asym.setFont(new java.awt.Font("Bookman Old Style", 3, 15));
        M_sign_hach.setFont(new java.awt.Font("Bookman Old Style", 3, 15));
        M_stegano.setFont(new java.awt.Font("Bookman Old Style", 3, 15));
        M_Fag.setFont(new java.awt.Font("Bookman Old Style", 3, 15));
        M_help.setFont(new java.awt.Font("Bookman Old Style", 3, 15));
        M_sym_DES = new JMenuItem("DES");
        M_sym_AES = new JMenuItem("AES");
        M_asym_RSA = new JMenuItem("RSA");
        M_sign_hach_MD5 = new JMenuItem("MD5");
        M_sign_hach_SHA1 = new JMenuItem("SHA1");
        M_sign_hach_DSA = new JMenuItem("DSA");
        M_Fag_MD5 = new JMenuItem("MD5");
        M_Fag_AES = new JMenuItem("AES");
        M_Fag_RSA = new JMenuItem("RSA");
        M_Fag_DES= new JMenuItem("DES");
        M_sym_DES.setFont(new java.awt.Font("Bookman Old Style", 3, 15));
        M_sym_AES.setFont(new java.awt.Font("Bookman Old Style", 3, 15));
        M_asym_RSA.setFont(new java.awt.Font("Bookman Old Style", 3, 15));
        M_sign_hach_MD5.setFont(new java.awt.Font("Bookman Old Style", 3, 15));
        M_sign_hach_SHA1.setFont(new java.awt.Font("Bookman Old Style", 3, 15));
        M_sign_hach_DSA.setFont(new java.awt.Font("Bookman Old Style", 3, 15));
        M_Fag_MD5.setFont(new java.awt.Font("Bookman Old Style", 3, 15));
        M_Fag_AES.setFont(new java.awt.Font("Bookman Old Style", 3, 15));
        M_Fag_RSA.setFont(new java.awt.Font("Bookman Old Style", 3, 15));
        M_Fag_DES.setFont(new java.awt.Font("Bookman Old Style", 3, 15));
     
        M_sym.add(M_sym_DES);
        M_sym.add(new JSeparator());
        M_sym.add(M_sym_AES);
        M_sym.add(new JSeparator());
        M_sym.add(M_sym_Cesar);
        M_asym.add(M_asym_RSA);
        M_sign_hach.add(M_sign_hach_MD5);
        M_sign_hach.add(new JSeparator());
        M_sign_hach.add(M_sign_hach_SHA1);
        M_sign_hach.add(new JSeparator());
        M_sign_hach.add(M_sign_hach_DSA);
        M_Fag.add(M_Fag_MD5);
        M_Fag.add(new JSeparator());
        M_Fag.add(M_Fag_AES);
        M_Fag.add(new JSeparator());
        M_Fag.add(M_Fag_RSA);
        M_Fag.add(new JSeparator());
        M_Fag.add(M_Fag_DES);
        menuBar.add(M_sym);
        menuBar.add(M_asym);
        menuBar.add(M_sign_hach);
        menuBar.add(M_stegano);
        menuBar.add(M_Fag);
        menuBar.add(M_help);
        B1.addActionListener(new B1());
        B2.addActionListener(new B2());
        this.setTitle("Steganographie : texte vers image");
        Toolkit tk = Toolkit.getDefaultToolkit() ;
        Dimension dimEcran = tk.getScreenSize() ;
        int larg = dimEcran.width ;
        int haut = dimEcran.height ;
        setSize (larg, haut) ;
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLocationRelativeTo(null);
     
        pan1.add(Ta);
        pan2.add(L1);
        pan3.add(T1);
         pan3.add(T2);
        pan4.add(B1);
        pan4.add(B2);
     
     
        this.setJMenuBar(menuBar);
        this.setLayout(new BorderLayout());
        this.setLayout(new GridLayout(2,2));
     
        B1.setBounds(610,420, 300, 30);
        B2.setBounds(610,500, 300, 30);
        //on ajoute les panel a la fenetre
        this.getContentPane().add(pan1);
        this.getContentPane().add(pan2);
        this.getContentPane().add(pan3);
        this.getContentPane().add(pan4);
     
        B1.setVisible(true);
        T1.setVisible(false);
        T2.setVisible(false);
        B2.setVisible(true);
        Ta.setVisible(true);
        L1.setVisible(true); }
     
        class B1  implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {chooseFile();
        B1.setVisible(true);
        T1.setVisible(false);
        T2.setVisible(false);
        B2.setVisible(true);
        Ta.setVisible(true);
        L1.setVisible(true);}}
        class B2 implements ActionListener{
        public void actionPerformed(ActionEvent e) {
        }}
        private void chooseFile() {
        JFileChooser chooser = new JFileChooser();
        chooser.showOpenDialog(this);
        if(chooser.getSelectedFile() != null) {
     	L1.setIcon(new ImageIcon(chooser.getSelectedFile().getPath()));
        System.out.println(chooser.getSelectedFile().getPath());
        T2.setText(chooser.getSelectedFile().getPath()); }}}

  2. #2
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 9
    Par défaut
    il se peut que parce que t'a pas fais un setLayout(null)

  3. #3
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 097
    Par défaut
    Je me permettrai de dire que votre réponse est correcte mais incomplète. Effectivement, en faisant un setLayout(null) l'exploitation de setBounds servirait à quelque chose. En effet, il n'y a que dans ce cas que le positionnement et le dimensionnement du composant définit par setBounds prend effet. Si le composant est posé dans un contenair qui décharge le positionnement et le dimensionnement de son contenu à des layouts, les propriétés passées par cette méthode ne sont pas utilisées.
    Hors, vous utilisez les layouts dans la suite de votre code pour habiller votre fenêtre. Si vous voulez malgré tout imposer un dimensionnement à votre JTextArea, si je ne me trompes pas, il suffit de définir les dimensions préférées de ce dernier par sa méthode setPrefferedSize(Dimension dim)...
    Par défaut, prefferedsize vaut null, et dans ce cas, la JVM se réfère au composant source UI pour déterminer ses dimensions, mais à ce moment précis, JTextArea ne contient rien, donc sa dimension est 'nulle' et il n'apparaît pas.
    Pour le vérifier, il suffirait sans toucher à votre code ou presque, simplement d'instancier votre JTextArea avec du texte dedans avant de l'ajouter au panel. Je penses que dans ce cas, sans rien changer d'autre dans votre code, le JTexteArea apparaîtrait, mais serait dimensionné de manière minimaliste par rapport au texte contenu.
    Je préciserai que tout cela est lié au fait que vous n'utilisiez pas de ScrollPane. En effet, sans toucher au fonctionnement ni au dimensionnement de votre JTextArea, simplement en déterminant le nombre de lignes qu'il est sensé représenter et ses dimensions préférées, alors il devrait s'afficher même s'il ne contient rien.
    Quoi qu'il en soit, le fait de définir un setBounds sur un composant qui est placé dans un panel régit par un layout est une contradiction.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

Discussions similaires

  1. Problème avec un JTextArea et un JPanel
    Par Spinoza23 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 01/02/2007, 17h33
  2. JTable avec des JPanel dans les cellule
    Par pigpen dans le forum Composants
    Réponses: 11
    Dernier message: 13/04/2006, 20h58
  3. [debutant] affichage ds un JtextArea avec classes independan
    Par tony_big_guy dans le forum Composants
    Réponses: 3
    Dernier message: 28/11/2005, 00h04
  4. [debutant][swing] Probleme avec un Jpanel
    Par JeanMoul dans le forum Débuter
    Réponses: 6
    Dernier message: 27/08/2005, 20h07
  5. [debutant] JTextArea avec ascenseur
    Par debdev dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 06/05/2005, 13h12

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