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 :

panel, layout et frame


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 71
    Points : 59
    Points
    59
    Par défaut panel, layout et frame
    Salut,

    je cherche afficher des images que je traite dans un programme au pixel par pixel. Seulement j'arrive soit a afficher mes images soit a afficher mon interface avec mes boutons et labels. Comment joindre les 2?

    en fait, je met mes images dans un JPanel. Puis je crée un JFrame auquel j'ajoute mon panel dans le constructeur. Et pour mon interface je crée un JFrame dans lequel je met un FlowLayout (sans trop savoir a quoi ca sert) puis j'ajoute mes boutons gentillement. Le prob c'est que si je crée mon panel dans ma classe avec les boutons et que j'ajoute le panel apparement y a un conflit avec le layout. J'ai pas réussi a trouver une FAQ qui explique clairement le systeme layout, frame, panel ect... alors je patauge un peu...

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    un conseil regarde les tutoriaux de sun, ils sont tres bien fait.

    j'ai pas trop compris ton probléme la, en fait le layout est l'objet qui va s'occuper de placer les éléments (correctement) dans ton JFrame.

    il faut que tu ajoutes tes boutons:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MaJFrame.getContentPane().setLayout(new FlowLayout());
    MaJFrame.getContentPane().add(MonBoutton1);
    ....
    et apres (ou avant) tu ajoutes le JPanel qui contient ton image :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaJFrame.getContentPane().add(MonJPanel);
    théoriquement ca marche

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 71
    Points : 59
    Points
    59
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
     
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
     
    public class ImageFrame extends JFrame implements ActionListener
    {
     
    protected JTextField textAreaMoyenne;
    protected JLabel labelMoyenne;
    protected JButton boutonTraitement;
    FlowLayout layout;
    private ImagePanel panel = new ImagePanel();
     
    public ImageFrame() {
     
    textAreaMoyenne = new JTextField();
    textAreaMoyenne.setText("chiffre entre 0 et 255");
    labelMoyenne = new JLabel();
    boutonTraitement = new JButton();
    layout = new FlowLayout();
    boutonTraitement.addActionListener(this);
    labelMoyenne.setText("Moyenne");
    boutonTraitement.setText("Traiter");
    setSize(500,500);
    setTitle("Titre");
    getContentPane().setLayout(layout);
    getContentPane().add(panel,null);
    getContentPane().add(labelMoyenne, null);
    getContentPane().add(textAreaMoyenne, null);
    getContentPane().add(boutonTraitement, null);
     
    }
    public void actionPerformed(ActionEvent e) {
    if (e.getSource() instanceof JButton) {
    System.out.println("test");
    }
    }
     
    public static void main(String args[]){
    ImageFrame i = new ImageFrame();
    i.show();
    }
    }
    ImagePanel est mon panel qui traite mes images. a terme, la méthode actionPerformed sera plus avancée mais bon je résouds un probleme a la fois.
    Donc selon toi, en mettant ce que j'ai mis il devrait m'afficher mes images et mes boutons ?

    et ben c'est pas le cas ...

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 36
    Points : 28
    Points
    28
    Par défaut
    G pas creusé dans l'API, mais en gros :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    getContentPane().add(panel,null); 
    getContentPane().add(labelMoyenne, null); 
    getContentPane().add(textAreaMoyenne, null); 
    getContentPane().add(boutonTraitement, null);
    va te mettre tous tes composants les uns sur les autres (enfin, je suis pas sur, mais y a des risques)

    essaie ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    getContentPane().add(panel); 
    getContentPane().add(labelMoyenne); 
    getContentPane().add(textAreaMoyenne); 
    getContentPane().add(boutonTraitement);
    Lire l'API java ne fait pas de mal : http://java.sun.com/j2se/1.4.2/docs/api/
    Pensez à marquer vos messages [résolu]

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    et je me suis pas trompé dans mon post, la méthode que tu utilise, mais le layout de l'element à null, dans la JFrame, donc ca ne marche pas.

    lol grillé c'est tout a fait ca.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 71
    Points : 59
    Points
    59
    Par défaut
    ai essayé, ca change rien.

    Il me met tout en ligne l'un derriere l'autre. Le truc bizarre c'est que je met en 1er le panel, donc logiquement, c'est le 1er élément de la liste. Ca me donne un truc bizarre : un petit carré noir ...

    Je comprends pas trop..

    Je résume le principe pour etre sur,

    Je crée une JFrame, cette JFrame contient un container dans lequel je met mes boutons (et autres). J'utilise une FlowLayout pour positionner mes éléments. Une fois le container récupéré j'ajoute mes éléments dont un panel que j'ai créé du genre :
    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
     
    public class ImagePanel extends JPanel {
     
    public ImagePanel() {
     
    // Je fais qq traitements sur mes images et les récupere
    // j'obtient image & imageold qui sont des Image
     
    }
     
    public void paintComponent(Graphics g) {
     
        super.paintComponent(g);
        g.drawImage(image,0,0,null);
        g.drawImage(oldImage,width +20,0,null);
     
    }
    }
    Donc a priori je suppose que mon panel est correctemennt créé.. alors je vois pas ou est le probleme

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 36
    Points : 28
    Points
    28
    Par défaut
    Bon, a priori, ce n'est plus le même problème

    Maintenant, tes éléments se rajoutent bien dans ton Layout (Comme c'est un Flow, ca les met les uns à la suite des autres, tu pourras changer de Layout par la suite si ca te plait pas)

    Le problème à résoudre maintenant c'est ton Panel avec les images qui n'a pas le bon affichage ou plus vraissemblablement, pas la bonne taille.

    Essaie de jouer avec les setSize, setMininimumSize, setPreferedSize (c'est une idée comme ça, je vais devoir y aller, je verrai ou tu en es demain)
    Lire l'API java ne fait pas de mal : http://java.sun.com/j2se/1.4.2/docs/api/
    Pensez à marquer vos messages [résolu]

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    c'est aussi ce qui me vien à l'esprit, le FlowLayout met tout les éléments a la suite, pour expliquer tout les autres layout, je te renvoie au si te sun :
    http://java.sun.com/docs/books/tutor...ing/index.html

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 71
    Points : 59
    Points
    59
    Par défaut
    j'ai regardé aux layout, jl'ai changé en border layout juste pour voir et la j'ai tout qui s'affiche et aussi mon panel. Il semble que effectivement il mettais tout l'un au dessus de l'autre.
    Me reste a comprednre pourquoi il n'affiche que le début des images.

    merci de votre aide

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

Discussions similaires

  1. [C#] winform panel layout
    Par camer12 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 22/02/2012, 15h19
  2. dimension d'un panel+layouts
    Par hannnnnn dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 15/05/2008, 18h53
  3. Afficher des panels dans une frame
    Par doons dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 20/07/2007, 08h07
  4. [wxpython] creer deux panel dans une frame
    Par hysah dans le forum wxPython
    Réponses: 3
    Dernier message: 27/12/2005, 18h21
  5. faire apparaitre et disparaitre un panel dans une frame
    Par Ghost Dog dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 22/04/2005, 01h55

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