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

Agents de placement/Fenêtres Java Discussion :

Différence entre Jpanel, JFrame, Frame, Panel


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Différence entre Jpanel, JFrame, Frame, Panel
    Bonjour, je cherche a réaliser une apllkication avec une interface graphique, mais je n'arrive pas a comprendre lequel de ces types ou meme un autre je dois prendre.

    Quelqu'un pourrait-il m'expliquer la différnece entre ces types ?

    Sinon pour vous aiguiller sur ce que je cherche a faire afin de me conseiller sur lequel prendre, je vais vous expliquer un peu ceque je cherche a faire.
    Je cherche a réaliseer trois parties dans mon ionterface : une partie chat, une partie affichage de texte qui change de temps en temps, et une partie affichage du jeu que je souhaite réaliser. Cette aprtie étant composée d'éléments graphiques tels que des rectangles et des traits réalisés a l'aide de ca :
    public void paintComponent(Graphics g)
    Un deuxième problème est que je n'arrive pas a afficher une image en background, je crois que ca cahnge si on prend un Frame, ou autre chose non ?

    Merci de m'aiguiller sur la meilleure méthode a prendre.

    @+

  2. #2
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 818
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 818
    Par défaut
    Bonsoir,

    Alors pour faire simple, une frame ou une jframe est la fenêtre de ton application, et le panel ou le jpanel est le ou les "panneau(x)" qui vont te permettre d'organiser tes éléments dans ta fenêtre. Tu peux mettre autant de (j)panel que tu veux dans ta (j)frame, tu te les organises comme tu le souhaites (avec les layouts), tu mets ce que tu veux dedans.

    La différence entre les composants sans "J" et les composants en "J" est que les premiers sont des composants AWT et les seconds des composants SWING. Surtout, évite de les mélanger (fais tout en AWT ou tout en SWING, mais pas de 50/50...). Donc, pour résumer, des panel dans une frame, ou des jpanel dans une jframe.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Invité
    Invité(e)
    Par défaut
    ok, d'accord, une autre question, tu dis je les organise comme je veux mais ca se passe comment, pour dire par exemple un en haut, et deux cotes a cote en bas ?

    Tu peux mettre un exemple ? Je trouve que les exemples sont parlants en général

    Sinon les objets créés avec Graphics g, on peut les mettre dans un Frame ou Jframe, ca dérange pas ?

    Merci d'avance

  4. #4
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 818
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 818
    Par défaut
    Citation Envoyé par ArkSer78
    ok, d'accord, une autre question, tu dis je les organise comme je veux mais ca se passe comment, pour dire par exemple un en haut, et deux cotes a cote en bas ?

    Tu peux mettre un exemple ? Je trouve que les exemples sont parlants en général
    Là, je vais te renvoyer vers le site des tutoriels de chez Sun, c'est très bien fourni:
    http://java.sun.com/docs/books/tutor...out/using.html

    Il y a en général plusieurs manière de faire ce qu'on veut...

    Citation Envoyé par ArkSer78
    Sinon les objets créés avec Graphics g, on peut les mettre dans un Frame ou Jframe, ca dérange pas ?
    Arggh! Alors là, ce n'est pas un domaine que je connais trop, donc je préfère ne pas dire de bêtises...
    Sauf qu'avec un JPanel c'est faisable...
    Je laisse le soin à quelqu'un de calé de répondre sur ce point.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  5. #5
    Invité
    Invité(e)
    Par défaut
    D'accord je vais attendre l'avis de quelqu'un d'autre alors.

    Merci en tout cas !

  6. #6
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    > pour dire par exemple un en haut, et deux cotes a cote en bas ? Tu peux mettre un exemple ? Je trouve que les exemples sont parlants en général

    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
     
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.Insets;
    import java.awt.Dimension;
    import java.awt.Image;
    import java.awt.Graphics;
    import java.net.URL;
    import java.net.MalformedURLException;
    import java.io.IOException;
     
    import javax.swing.BorderFactory;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.border.Border;
    import javax.swing.border.EtchedBorder;
     
    /**
     * Created by IntelliJ IDEA.
     * User: bebe
     * Date: 12-Jun-2006
     * Time: 08:34:15
     * To change this template use File | Settings | File Templates.
     */
    public class Test extends JPanel {
     
        private JPanel myPanel1 = new JPanel() {
            Image image = null;
     
            protected void paintComponent(Graphics g) {
                super.paintComponent(g);    //To change body of overridden methods use File | Settings | File Templates.
                if (image == null) {
                    try {
                        image = javax.imageio.ImageIO.read(new URL("http://www.google.be/images/logo_sm.gif"));
                    } catch (MalformedURLException e) {
                        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
                    } catch (IOException e) {
                        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
                    }
                }
                g.drawImage(image, 0,0,this.getWidth(),this.getHeight(),this);
            }
        };
        private JPanel myPanel2 = new JPanel();
        private JPanel myPanel3 = new JPanel();
     
        public Test() {
            initGui();
        }
     
        private void initGui() {
            setLayout(new GridBagLayout());
     
            Border myBorder = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED);
     
            myPanel1.setBorder(myBorder);
            myPanel2.setBorder(myBorder);
            myPanel3.setBorder(myBorder);
     
            GridBagConstraints gbc = new GridBagConstraints();
            gbc.gridwidth = GridBagConstraints.REMAINDER;
            gbc.weightx = 1.0;
            gbc.weighty = 0.6;
            gbc.fill = GridBagConstraints.BOTH;
            gbc.insets = new Insets(5, 5, 5, 5);
            this.add(myPanel1, gbc);
     
            gbc.gridy = 1;
            gbc.gridwidth = 1;
            gbc.weightx = 0.5;
            gbc.weighty = 0.4;
            this.add(myPanel2, gbc);
     
            gbc.gridx = 1;
            this.add(myPanel3, gbc);
        }
     
        public static void main(String[] args) {
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.add(new Test());
            frame.setSize(new Dimension(400, 300));
            frame.setVisible(true);
        }
    }
    > Sinon les objets créés avec Graphics g, on peut les mettre dans un Frame ou Jframe, ca dérange pas ?

    Graphics est une classe AWT ca va en theorie pas deranger MAIS PERSONNE FAIT CA.
    utilise des Canvas(java.awt.Canvas) si tu veux faire du dessin et utiliser AWT.
    ca sert a ca!

    si tu fait du swing, tu extend de JComponent et t'es parti. ;-)

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 06/09/2010, 16h44
  2. Réponses: 3
    Dernier message: 11/07/2009, 01h34
  3. Différences entre JComponent et JPanel
    Par FaridM dans le forum Débuter
    Réponses: 5
    Dernier message: 07/04/2009, 11h07
  4. Différence entre "a un JFrame" et "est un JFrame"
    Par poppels dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 21/01/2008, 12h05
  5. [XHTML] différence entre TABLE et FRAME
    Par Mma88 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 08/10/2006, 10h09

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