01net    Web


Actuellement en ligne : 206 Utilisateurs dont 12 dans Programmation et développement >S'inscrire      >S'identifier      >Recherche      >Aide  
modéré par A.Ouloube, Beno@  
01net > Forum de 01net > Programmation et développement > java
> Afficher du contenu au sein d'une appli graphique
Auteur
Message
 
<     1       >
LeNovice2
  
   
      ?   @     Posté le 02/06/2006 11:52:06  
Voter pour ce message
Bonjour, je débute en programmation Java et je rencontre quelques problèmes avec le développement d'applicationgs graphiques et j'aurais besoin de votre aide, rapidement, si possible.

J'ai développé une classe MaFenetre qui met en place une fenêtre Windows avec un menu (Fichier, Edition) et une classe Fonctionnalites qui propose différentes méthodes destinés à l'application (formulaire de saisie....)

Les méthodes de cette classe Fonctionnalités marchent correctement (elles ont été testés non pas en tant que méthode de Fonctionnalités, mais au sein du constructeur de ma fenêtre).
Mais lorsque celle-ci sont des méthodes de Fonctionnalités, elle ne fonctionnent pas. En effet, quand on les appellent, elle ne marchent et leur contenu (formulaire de saisie avec des JButtons, Jlabel, JTextField) n'apparaient pas à l'écran

Faudrait t'il passer quelque chose en paramètre lors de l'appel de l'une des méthodes ????
Est-ce un problème lié à l'affectation à la fenêtre mère, getcontentpane ??????

Merci d'avance

[code]
import javax.swing.*;
import java.awt.*; // nécéssaire pour la classe Container
import java.awt.event.*; // nécessaire pour ActionListener, WindowListener
import java.lang.*;

public class MaFenetre extends JFrame implements ActionListener, WindowListener {

public static void main (String[] args)
{ JFrame FenetreAppli = new MaFenetre();
FenetreAppli.setVisible(true);
FenetreAppli.show(); }

// Déclaration d'une variable funct de type Fonctionnalites
Fonctionnalites funct;

// Constructeur de la fenêtre
public MaFenetre() {

// Déclaration item Menu
MenuItem mi;

// Caractéristiques de la fenêtre
setSize(350,200);
setLocation(300,300);
setTitle("Bibliothèque");
setResizable(false);
addWindowListener(this);
funct = new Fonctionnalites();

// Construction du menu
MenuBar mb=new MenuBar();
setMenuBar(mb);
//menu Fichier
Menu m1=new Menu("Fichier");
mb.add(m1);
// Item Quiter
mi=new MenuItem("Quitter");
mi.addActionListener(this);
m1.add(mi);

// menu Edition
Menu m2=new Menu("Edition");
mb.add(m2);
// Item Ajouter Livre
mi=new MenuItem("Ajouter Livres");
mi.addActionListener(this);
m2.add(mi);
//Item Lister Bibliotheque
mi=new MenuItem("Lister Bibliothèque");
mi.addActionListener(this);
m2.add(mi);

// gestion evenementielle de la fermeture de la fenêtre
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{System.exit(0);}
} ) ;
}


public void actionPerformed(ActionEvent e) {

if (e.getActionCommand().equals("Quitter"))
{System.exit(0);}
else if (e.getActionCommand().equals("Ajout Livres"))
{funct.Ajout();
}

}
[/code]

[code]
import javax.swing.*;
import java.awt.*; // nécéssaire pour la classe Container
import java.awt.event.*; // nécessaire pour ActionListener


public class Fonctionnalites extends JFrame implements ActionListener, MouseListener {

Bibliotheque biblio = new Bibliotheque();

// Déclération du panel
JPanel panneauSaisie;
JPanel panneauLabel;

Container Fenetre1 = getContentPane(); // Fenetre1 : référence au contenu de la fenêtre1
// Déclaration des boutons de la fenêtre
public JButton AddButton;

// Déclaration des zones de saisie de la fenetre
public JTextField SaisieTitre;
public JTextField SaisieAuteur;


// Déclaration des etiquettes
private JLabel JLabelTitre;
private JLabel JLabelAuteur;


// Constructeur
public Fonctionnalites()
{addMouseListener(this);
setBackground(Color.white);}

// Méthode Ajout
public void Ajout()
{
// JTextField
SaisieTitre = new JTextField(10);
SaisieAuteur = new JTextField(10);


//JLabel
JLabelTitre = new JLabel("Titre : ", JLabel.CENTER);
JLabelAuteur = new JLabel("Auteur : ", JLabel.CENTER);

// Boutons
AddButton = new JButton("OK");

// Panels
panneauSaisie = new JPanel(new GridLayout(5,1,5,5));
panneauLabel = new JPanel(new GridLayout(5,1,5,5));

// Fenêtre et mise en forme Fenetre1
Fenetre1.setLayout(new BorderLayout(15,15)); // Choix d'un gestionnaire de mise en forme
Fenetre1.applyComponentOrientation( ComponentOrientation.LEFT_TO_RIGHT);

// Ajouts des différents composants aux Panels
panneauLabel.add(JLabelTitre);
panneauSaisie.add(SaisieTitre);

panneauLabel.add(JLabelAuteur);
panneauSaisie.add(SaisieAuteur);

//Fenetre1
Fenetre1.setVisible(true);
Fenetre1.add(panneauLabel, BorderLayout.WEST);
Fenetre1.add(panneauSaisie, BorderLayout.CENTER);
Fenetre1.add(AddButton, BorderLayout.SOUTH);

// Gestion Evenements
AddButton.addActionListener(this); // La fenêtre écoute AddButton;
}
[/code]
Minus-et-Cortex
  
   
      ?   @     Posté le 16/07/2006 21:14:29  
Voter pour ce message
Salut ! Je ne suis pas sûr, mais j'ai un doute quant au fait que ton getContentPane te retourne celui de ta JFrame principale. A la limite, il vaudrait mieux que ta classe Fonctionnalités n'étende pas JFrame (puisque son rôle n'est pas à priori d'afficher une nouvelle fenêtre, mais de modifier le panneau de ta fenêtre principale, d'après ce que j'ai pu comprendre), et que tu passes au constructeur de cette classe, soit la frame MaFenêtre (donc this lors de l'appel du constructeur Fonctionnalites dans MaFenetre) soit le getContentPane de la même frame.

@+
-------
Mieux vaut fermer sa gueule et passer pour un con que l'ouvrir et ne laisser aucun doute à ce sujet.
Gustave Parking
<     1       >

01net > Forum de 01net > Programmation et développement > java
> Afficher du contenu au sein d'une appli graphique

Aller à :

Page générée en : 0.088s - X2board 2.2

Nous contacter | Charte de confiance | Voir notice légale

Tous droits réservés © 1999 - 2008 Groupe Tests - 01net.


Sites du réseau 01net Network : 01net - 01men - Rmc.fr - Bfmtv.fr - Radiobfm.com - TousLesPodcasts - Micro Achat

Cours d'anglais
Niveau débutant : bénéficier de 72h de cours et apprenez 1200 expressions usuelles.
Jeux
Nouveauté : C'est à vous de suivre les indices et de résoudre ce mystère ! La vie de Natalie en dépend !