Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1317 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [resolu] focus sur JFrame

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[resolu] focus sur JFrame

n°927891
kungouf
Posté le 20-12-2004 à 11:11:33  profilanswer
 

Bonjours a tous,
 
je bloque actuellement sur plusieurs problemes lie a JFrame.
j'ai une application qui possede une fenetre principale, ainsi qu'une autre JFrame qui apparait pour demander la saisie d'information, qui possede une JcomboBox ainsi qu'un tableau d'icone associe affiche dans un JPanel pour l'affichage de l'image selectionne.
 
le focus n'agit pas lorsque j'instancie ma classe et apres avoir fait un request focus.
 
voici l'instanciation de la fenetre de saisie faite dans la classe principale:
 
ListeDeroulanteTest lm = new ListeDeroulanteTest("SousApplication" );
lm.setLocation(300, 300);
lm.requestFocus();
 
 
contenu de ListeDeroulanteTest:
 
public class ListeDeroulanteTest extends JFrame implements FocusListener{
   private JComboBox images;
   private JLabel etiquette;
   
   public  Icon[] icones;
     
   public JTextField nom;
   
   private String noms[] =
   {    "./images/ConfigurationItem.32.gif",
      "./images/ServiceLevelAgreement.32.gif",
   "./images/WorkGroup.32.gif",
   "./images/africa.32.gif",
   "./images/aix.32.gif",
   
 };
   
   public ListeDeroulanteTest(String nomType)
   {
      super( "./imagesTest de JComboBox" );
     
      Container c = getContentPane();
      c.setLayout( new GridLayout(5, 1) );      
       
      //initialisation de la structure de donnee
      icones = new Icon[noms.length];
       
      JLabel texte = new JLabel("Saisie " + nomType);
   nom = new JTextField();
     
   JButton validation = new JButton("valider" );
     
      images = new JComboBox( noms );
      images.setMaximumRowCount( 123 );
       
      //positionnement des etiquettes par default
      if(nomType.equals("SousApplication" )){
       images.setSelectedIndex(10);
      }
       
      //initialisation du tableau d'icones
      for(int i=0; i< noms.length; i++){
       //icones[i] = new ImageIcon( "./images/" + noms[ i ] );
       icones[i] = new ImageIcon( noms[ i ] );
      }
 
      images.addItemListener(
         new ItemListener() {
            public void itemStateChanged( ItemEvent e )
            {
               etiquette.setIcon(
                  icones[ images.getSelectedIndex() ] );
            }
         }
      );
 
      etiquette = new JLabel( icones[ 0 ] );
 
 
      c.add(texte);
      c.add(nom);
      c.add(validation);
      c.add(images);
       
      c.add( etiquette );
       
      setSize( 350, 100 );

      setFocusable(true);
      addFocusListener(this);

      show();
 
   }
   
   public void focusGained(FocusEvent e) {
 
    }
 
    public void focusLost(FocusEvent e) {
 
    }

}
 
 
 
voila donc le focus n'agit pas avec ce code.
quelqu'un voit - il l'erreur?


Message édité par kungouf le 22-12-2004 à 14:08:05
mood
Publicité
Posté le 20-12-2004 à 11:11:33  profilanswer
 

n°927946
kungouf
Posté le 20-12-2004 à 11:50:36  profilanswer
 

j'ai fait un test, ca fonctionne pas dans ce cas precis avec la JFrame ainsi qui contient des sous Frame.
 
par contre, le focus fonctionne parfaitement avec une JFrame standard

n°928093
benou
Posté le 20-12-2004 à 14:48:38  profilanswer
 

j'ai pas bien compris le problême. ton Focus listener ne reçoit pas les évenement c'est ca ?
 
remarque : mets ton code entre des balises [cpp ] [/cpp ] (bouton C/C++ dans l'interface de saisie)


---------------
ma vie, mon oeuvre - HomePlayer
n°929895
kungouf
Posté le 22-12-2004 à 11:44:48  profilanswer
 

merci benou d'avoir reagit cependant j'ai trouve mon probleme.
de plus il fallait que j'herite d'un JDialog et non pas d'une JFrame pour appaler la methode setModal() afin d'obliger la saisie modale

n°929907
sgamier
Posté le 22-12-2004 à 12:05:01  profilanswer
 

Et c'est quoi la réponse finale ?

n°930028
kungouf
Posté le 22-12-2004 à 14:07:38  profilanswer
 

en resume, j'appelle le focus au moment de l'ouverture de la fenetre sur un element et ca fonctionne tres bien pour mettre le focus sur mon objet, j'utilise un JDialog et non plus une JFrame ce qui me permet d'appeler la methode setModal() pour eviter que le programme continue sans la saisie de donnee...
 
 
public LaClass extends JDialog implements FocusListener, ActionListener{
   ....
   nom.addFocusListener(this);
 
 
    ...
 
  //focus a l'ouverture de la JDialog sur le JTextField nom  
      addWindowListener( new WindowAdapter() {
        public void windowOpened( WindowEvent e ){
             nom.requestFocus();
          }
        } );
}


Message édité par kungouf le 22-12-2004 à 14:10:36

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [resolu] focus sur JFrame

 

Sujets relatifs
[RESOLU] Precision d'un float à l'affichage[résolu][C++]Passage de paramètres au constructeur d'une classe mère
Passage texte brut en XHTML [Résolu]insérer du php dans une page html resolu
[Pb] Mysql 4.0.18 et socket TCP sous Linux Debian Sarge [RESOLU][VBA Excel] [Résolu] Problème de librairies de fonctions vba
[[MS Visual C++ 6.0] Il ne link plus lors de la compilation [Résolu]accéder à une base mysql avec php5 RESOLU
Sélectionner/désélectionner TOUS les <option> d'un <select> [Résolu][résolu] installation SDK netbeans... qui marche pas
Plus de sujets relatifs à : [resolu] focus sur JFrame


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR