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 :

Perte d affichage des JPanel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Mars 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 2
    Par défaut Perte d affichage des JPanel
    Bonjour, j ai un probleme qui risque de paraitre simple a certains vu qu il ne me semble pas avoir trouve de gens ayant ce meme probleme.

    J ai donc une JFrame principale qui contient 3 JPanel et 1 JScrollPane.
    Des lors que je mets des JTextField dans l un de ces JPanel (ou JScrollPane) ma fenetre principale se retrouve entierement vide.
    Jusque la je m etais debrouille en utilisant de simples TextField (ca marche pour une raison qui m echappe) mais maintenant je veux utiliser dans ma JScrollPane des JSpinner et le probleme est le meme.

    Chose interessante, si je ne mets QU UN SEUL JSpinner, ma fenetre s affiche alors de maniere aleatoire. J a trouve plusieurs suggestions me suggerant d utiliser invokeAndWait mais j avoue ne pas avoir saisi comment me servir de celui ci...

    Voici donc une partie du code que j espere suffisante :

    //Main_window.java

    package gui;

    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.GridBagLayout;

    import javax.swing.JComponent;
    import javax.swing.JFrame;
    import javax.swing.JPanel;

    public class Main_window {
    static JFrame window;
    static JComponent progname;
    static JComponent toolbox;
    static JComponent dropbox; // <= c est ce JScrollBar qui m interesse
    static JComponent confirm;

    public static void main(String[] args)
    {
    window=new JFrame(); //on cree une trame
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    window.setSize(1000, 750);
    window.setTitle("Main window");
    window.setVisible(true);//etat
    init();
    }

    private static void init() {
    JPanel scrolledpanel = new JPanel(new GridBagLayout());

    //scrolledpanel.setPreferredSize(new Dimension(680,1600));
    dropbox=new Dropboxpanel(scrolledpanel);

    window.getContentPane().setLayout(new BorderLayout());
    window.getContentPane().add(dropbox, BorderLayout.CENTER);
    }
    }



    //Dropboxpanel.java


    package gui;

    import java.awt.Color;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.Insets;

    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollBar;
    import javax.swing.JScrollPane;
    import javax.swing.ScrollPaneLayout;

    public class Dropboxpanel extends JScrollPane {


    private static final long serialVersionUID = 1L;
    private JPanel own;
    private int lasty;
    private Insets insets=new Insets(3,3,3,3);

    public Dropboxpanel (JPanel mypanel)
    {
    super(mypanel,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    own=mypanel;
    lasty=-1;
    init();
    }

    private void init() {

    //this.add(new JLabel("Dropbox"));
    this.setLayout(new ScrollPaneLayout());
    this.setBackground(Color.black);
    this.add(new JScrollBar());

    //several times add but just for test purpose, remove em later
    //addpanel(new Stringsubpanel());
    //addpanel(new Fileboxsubpanel());
    addpanel(new Floatsubpanel());


    //addpanel(new Intsubpanel());
    //addpanel(new Booleansubpanel());

    }

    private void addpanel(Subpanel toadd){
    GridBagConstraints c=new GridBagConstraints();
    c.insets=insets;
    c.gridy=lasty + 1;
    lasty++;
    own.add(toadd, c);

    }


    }


    //Floatsubpanel.java

    package gui;

    import java.awt.Color;
    import java.lang.reflect.InvocationTargetException;

    import javax.swing.JLabel;

    public class Floatsubpanel extends Stringintabst {

    public Floatsubpanel (){
    super();
    init();

    }
    public void init(){
    defaultfield=new JLabel ("mettre un jspinner a float ");

    c.gridy=1;
    c.gridx=4;
    this.add(defaultfield,c);
    this.setBackground(Color.gray);
    this.repaint();
    }

    }

    //Stringintabst.java

    package gui;

    import java.awt.Checkbox;
    import java.awt.Color;
    import java.awt.Component;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.Insets;
    import java.awt.TextField;

    import javax.swing.JLabel;

    public abstract class Stringintabst extends Subpanel {

    TextField namefield = new TextField ("", 20);
    JLabel name= new JLabel ("Name :");

    TextField codefield = new TextField ("", 20);
    JLabel code = new JLabel ("Cmd line code :");

    TextField prefixfield = new TextField ("", 5);
    JLabel prefix = new JLabel ("Prefix :");

    TextField joinerfield = new TextField ("", 3);
    JLabel joiner = new JLabel ("Joiner :");

    Component defaultfield ;
    JLabel deflt = new JLabel ("Default :");

    Checkbox hidden = new Checkbox("Hidden ", true);

    public Stringintabst (){
    super();
    panelname= new JLabel ("String");

    init();
    }

    private void init() {

    c.gridx=1;
    this.add(name,c);

    c.gridx=2;
    this.add(namefield,c);

    c.gridx=3;
    this.add(code,c);

    c.gridx=4;
    this.add(codefield,c);

    c.gridx=5;
    this.add(hidden,c);

    c.gridy=1;
    c.gridx=0;
    this.add(prefix,c);

    c.gridx=1;
    this.add(prefixfield,c);

    c.gridy=2;
    c.gridx=0;
    this.add(joiner,c);

    c.gridx=1;
    this.add(joinerfield,c);

    c.gridy=1;
    c.gridx=3;
    this.add(deflt,c);

    //c.gridx=4;
    //this.add(defaultfield,c);
    }
    }


    voila ca fait peut etre beaucoup de code pour une erreur bete mais on sait jamais...

    Merci BEAUCOUP a quiconque m'aidera (et si en plus d'une solution j'ai une explication qui me fait comprendre mon erreur je serais des plus heureux).

    PS : desole pour les maniaques de la langue francaise donc je fais partie mais je suis sur un clavier qwerty et je sais pas comment mettre les accents...

  2. #2
    Nouveau candidat au Club
    Inscrit en
    Mars 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 2
    Par défaut
    Mince j ai laisse la version de test, donc a la place du
    defaultfield=new JLabel ("mettre un jspinner a float ");
    dans Floatsubpanel.java, si je mets juste

    defaultfield= new JSpinner ();
    A ce moment la mon affichage marchera une fois sur deux, donc il marche pas.

    Si je compile avec du Java 1.4 ca marche avec une plus grande probabilite mais ca me console pas vraiment.
    La je compile en Java 6 avec Eclipse.

Discussions similaires

  1. Affichage des JPanel après réduction de la fenêtre
    Par abablex dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 16/08/2011, 13h41
  2. [WD-2007] Plantage et pertes d'affichage des images
    Par ESVBA dans le forum Word
    Réponses: 3
    Dernier message: 22/04/2011, 14h06
  3. Réponses: 1
    Dernier message: 06/03/2003, 11h57
  4. Forcer l'affichage des dizaines...
    Par pataluc dans le forum Langage
    Réponses: 4
    Dernier message: 26/11/2002, 19h38
  5. [VB6] [Flexgrid] Format d'affichage des numériques
    Par yansolo dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/10/2002, 21h00

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