Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

fenetre qui ne s'affiche pas

4 réponses
Avatar
jean
bonjour

j'essaie de créer un petit programme qui doit dessiner dans la fenetre
principale
mais je n'arrive pas à afficher cette fenetre principale
par contre quand je valide la ligne:
jPanelPrincipal.add(jTextArea1, BorderLayout.CENTER);
je vois bien la fenêtre et je peux écrire dans la fenetre !!!
j'utilise jbuilder 2005 avec le jre 1.4.2 sous windows xp

pourriez vous me dire ce que j'ai oublié dans le programme suivant
j'ai enlevé tout ce qui me semblait superflu.


Classe Main
package test07;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.*;
import java.lang.Object;

public class Main
{
public static void main(String[] args)
{
Programme prog = new Programme();
}
}


Classe Programme
package test07;

import java.awt.*;
import javax.swing.*;

public class Programme extends JFrame
{
// Menu
private JMenuBar barreMenu;

private JMenu menuFichier;
private JMenu menuForme;

private JMenuItem fichierImprimer;
private JMenuItem fichierQuitter;
private JMenuItem fichierEffacer;


JPanel jPanelPrincipal = new JPanel();
JPanel jPanelBouton = new JPanel();
JPanel window = new JPanel();

BorderLayout borderLayoutPanelPrincipal = new BorderLayout();
JLabel jLabelCentre = new JLabel();
JButton jButtonFermer = new JButton();
JTextArea jTextArea1 = new JTextArea();

// Composants de l'application
public Programme()
{
super(" Mon programme");
Toolkit t = this.getToolkit();
setSize(600,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// barre de menu
menuFichier = new JMenu("Fichier");
menuForme = new JMenu("type");

// menu fichier
fichierImprimer = new JMenuItem("Imprimer");
fichierQuitter = new JMenuItem("Quitter");
fichierEffacer = new JMenuItem("Effacer");

menuFichier.add(fichierImprimer);
menuFichier.add(fichierQuitter);
menuFichier.add(fichierEffacer);

barreMenu = new JMenuBar();
barreMenu.add(menuFichier);
barreMenu.add(menuForme);
setJMenuBar(barreMenu);

jButtonFermer.setText("test 2");
jLabelCentre.setText("test 1");

jPanelPrincipal.setLayout(borderLayoutPanelPrincipal);
jPanelPrincipal.add(jButtonFermer, BorderLayout.SOUTH);
jPanelPrincipal.add(jLabelCentre, BorderLayout.EAST);

// pour afficher du texte
// jPanelPrincipal.add(jTextArea1, BorderLayout.CENTER); //
fonctionne!!!

this.getContentPane().add(window,BorderLayout.CENTER);
this.getContentPane().add(jPanelPrincipal);
setVisible(true);
}
}

merci
jean francois

4 réponses

Avatar
Trognon Patrice
pack();
show();

a la fin de ton code.


bonjour

j'essaie de créer un petit programme qui doit dessiner dans la fenetre
principale
mais je n'arrive pas à afficher cette fenetre principale
par contre quand je valide la ligne:
jPanelPrincipal.add(jTextArea1, BorderLayout.CENTER);
je vois bien la fenêtre et je peux écrire dans la fenetre !!!
j'utilise jbuilder 2005 avec le jre 1.4.2 sous windows xp

pourriez vous me dire ce que j'ai oublié dans le programme suivant
j'ai enlevé tout ce qui me semblait superflu.


Classe Main
package test07;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.*;
import java.lang.Object;

public class Main
{
public static void main(String[] args)
{
Programme prog = new Programme();
}
}


Classe Programme
package test07;

import java.awt.*;
import javax.swing.*;

public class Programme extends JFrame
{
// Menu
private JMenuBar barreMenu;

private JMenu menuFichier;
private JMenu menuForme;

private JMenuItem fichierImprimer;
private JMenuItem fichierQuitter;
private JMenuItem fichierEffacer;


JPanel jPanelPrincipal = new JPanel();
JPanel jPanelBouton = new JPanel();
JPanel window = new JPanel();

BorderLayout borderLayoutPanelPrincipal = new BorderLayout();
JLabel jLabelCentre = new JLabel();
JButton jButtonFermer = new JButton();
JTextArea jTextArea1 = new JTextArea();

// Composants de l'application
public Programme()
{
super(" Mon programme");
Toolkit t = this.getToolkit();
setSize(600,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// barre de menu
menuFichier = new JMenu("Fichier");
menuForme = new JMenu("type");

// menu fichier
fichierImprimer = new JMenuItem("Imprimer");
fichierQuitter = new JMenuItem("Quitter");
fichierEffacer = new JMenuItem("Effacer");

menuFichier.add(fichierImprimer);
menuFichier.add(fichierQuitter);
menuFichier.add(fichierEffacer);

barreMenu = new JMenuBar();
barreMenu.add(menuFichier);
barreMenu.add(menuForme);
setJMenuBar(barreMenu);

jButtonFermer.setText("test 2");
jLabelCentre.setText("test 1");

jPanelPrincipal.setLayout(borderLayoutPanelPrincipal);
jPanelPrincipal.add(jButtonFermer, BorderLayout.SOUTH);
jPanelPrincipal.add(jLabelCentre, BorderLayout.EAST);

// pour afficher du texte
// jPanelPrincipal.add(jTextArea1, BorderLayout.CENTER); //
fonctionne!!!

this.getContentPane().add(window,BorderLayout.CENTER);
this.getContentPane().add(jPanelPrincipal);
setVisible(true);
}
}

merci
jean francois


--
Cordialement,

Patrice Trognon
http://wwW.javadevel.com

Avatar
jef
Trognon Patrice wrote:



pack();
show();

a la fin de ton code.



malheureusement cela ne marche pas, mais je crois que je me suis mal
exprimé, il n'y a que la fenêtre du centre qui ne s'affiche pas, la JFrame,
les menus... s'affichent bien mais pas la fenêtre où je voudrais dessiner:
en bref l'intérieur de ma fenêtre est tout gris


merci
jean francois

Avatar
sheeridan
Ben je crois qu'en fait elle s'affiche ta fenêtre jPanelPrincipal. C'est
plutôt la fenêtre window qu'on ne voit pas. Colores-les et ça te sautera aux
yeux
jPanelPrincipal.setBackground(Color.red);
window.setBackground(Color.green);
par contre si tu déclares
this.getContentPane().add(window,BorderLayout.CENTER);
avant
this.getContentPane().add(jPanelPrincipal);
on ne voit que ta fenêtre window
C'est donc qu'il faut que tu mettes un layout à ton contentPane
ex :
this.getContentPane().setLayout(new GridLayout(0, 2));
Là, on voit les 2.


jef a écrit dans le message :
cr6usl$5jr$
Trognon Patrice wrote:



pack();
show();

a la fin de ton code.



malheureusement cela ne marche pas, mais je crois que je me suis mal
exprimé, il n'y a que la fenêtre du centre qui ne s'affiche pas, la
JFrame,

les menus... s'affichent bien mais pas la fenêtre où je voudrais dessiner:
en bref l'intérieur de ma fenêtre est tout gris


merci
jean francois



Avatar
Jocelyn
Salut,
J'ai parcouru rapidement ton code car il faut avouer que c'est bien
le genre de code barbant :)
Il me semble que tout a la fin les 2 lignes:

this.getContentPane().add(window,BorderLayout.CENTER);
this.getContentPane().add(jPanelPrincipal);

sont en contradiction.
Par defaut le contentPane doit etre en flowLayout. La premiere
ligne n'a donc pas vraiment de sens.
Supposons (je pense que c'est le cas) que tu veuilles obtenir une JFrame
avec une barre de menu et un borderLayout avec au centre la JTextArea,
au sud le bouton Fermer et a l'est le label associe a la zone de texte.
Tu devrais faire ca dans ton programme:
getContentPane.setLayout(new BorderLayout());
getContentPane().add(maTextArea,BorderLayout.CENTER);
getContentPane().add(monBouton,BorderLayout.SOUTH);
getContentPane().add(monLabel,BorderLayout.EAST);

J'espere que ca t'eclaircit les choses...