[IHM] Comment faire une barre d'etat ?

Comment faire une barre d'etat ? [IHM] - Java - Programmation

Marsh Posté le 25-06-2004 à 18:08:42    

Salut,
 
 
J'aimerai savoir comment faire une barre d'etat comme celle de Internet Explorer ou de Eclipse.
 
Avec certaines partie de la barre qui ont des emplacements fixe (de taille et localisation).
 
Pour le moment, je pensais utiliser un JPanel je place en dans le container de la frame principale (avec un BorderLayout, et donc en SOUTH) mais je ne vois pas quel gestionnaire utiliser pour placer de maniere fixé les composants a l'interieur de la barre d'etat.
 
En fait, je voudrai avoir dans ma barre d'etat des indications comme l'etat du bouton Caps Lock, Num Lock, l'heure etc.
 
Si vous avez une idée ca serait cool (peut etre utiliser des positions absolut ??? )
 
Merci

Reply

Marsh Posté le 25-06-2004 à 18:08:42   

Reply

Marsh Posté le 26-06-2004 à 20:59:02    

ben un simple textField suffis:
 

Code :
  1. public class StatusBar extends JPanel
  2. {
  3. private JTextField tf;
  4.  public  StatusBar()
  5.  {
  6.   super(new BorderLayout());
  7.   tf = new JTextField();
  8.   tf.setFont(new Font("Verdana",Font.PLAIN,11));
  9.     tf.setEnabled(false);
  10.     add(tf,"South" );
  11.  }
  12.  public void setText(String text)
  13.  {
  14.   tf.setText(text);
  15.  }
  16. }


Message édité par veryfree le 26-06-2004 à 20:59:40
Reply

Marsh Posté le 01-07-2004 à 17:55:03    

bon ben j'arrive toujours pas a faire fonctionner ma barre d'etat...
 
Je n'arrive pas a recuperer les evements clavier ...ce qui est assez bizarre ...
 
voila ce que je fais :  

Code :
  1. public class Principale extends JFrame implements ActionListener, KeyListener,OutlookBarSelectionListener  {
  2. /*...*/
  3. public Principale () {
  4. /*...*/
  5. getContentPane().addKeyListener(new KeyAdapter(){
  6.   public void keyPressed(KeyEvent e)
  7.   {
  8.    System.out.println("KeyEvent.VK_NUM_LOCK : "+KeyEvent.VK_NUM_LOCK);
  9.    System.out.println("KeyEvent.VK_CAPS_LOCK : "+KeyEvent.VK_CAPS_LOCK);
  10.    //evenement modif caps lock  
  11.    if (e.getKeyCode() == KeyEvent.VK_CAPS_LOCK) {
  12.     System.out.println("detecté CAPS_LOCK" );
  13.     statusBar.toggleStateMaj();
  14.    }
  15.    //evenement modif num pad  
  16.    if (e.getKeyCode() == KeyEvent.VK_NUM_LOCK) {
  17.     System.out.println("detecté NUM_LOCK" );
  18.     statusBar.toogleStateNum();
  19.    }
  20.   }
  21.  }
  22.  );
  23. /*...*/
  24. }
  25. /*...*/
  26. }


 
Ce qui a priori devrait au moins m'afficher ca :

Code :
  1. System.out.println("KeyEvent.VK_NUM_LOCK : "+KeyEvent.VK_NUM_LOCK);
  2. System.out.println("KeyEvent.VK_CAPS_LOCK : "+KeyEvent.VK_CAPS_LOCK);


 
quand j'appuie sur une touche ...mais rien du tout ...
 
Des idees ?
 
PS : les fonctions toogleXXX() permettent comme leur nom l'indique de changer la chaine affiché dans la barre d'etat.

Reply

Marsh Posté le 02-07-2004 à 10:28:49    

up ! ;)

Reply

Marsh Posté le 11-02-2005 à 11:38:32    


 
Salut !!
 
 
Ben en fait j'ai EXACTEMENT le même problème, et j'arrive pas à catcher les événements clavier.
 
Si quelqu'un a la solution... je suis preneur :)
Merci !
 
ps : mon code est grosse.... grosso modo le meme que celui de boubavic

Reply

Marsh Posté le 11-02-2005 à 15:33:31    

Utilise plutôt un KeyEventDispatcher qui va recevoir tout les évènements, focus ou non.
 

Code :
  1. DefaultKeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(
  2.                 new KeyEventDispatcher() {
  3.                     public boolean dispatchKeyEvent(KeyEvent e) {
  4.                         System.out.println(e);
  5.                         return false;
  6.                     }
  7.                 }
  8.         );

Reply

Marsh Posté le 11-02-2005 à 22:47:15    

Merci replix !
 
 
En fait, j'avais entre-temps opté pour une autre solution (vu que je veux juste l'état de 3 touches) : j'ai utilisé un timer (j'en avais de toutes facons besoin) qui vérifie a intervalles réguliers l'état de ces touches.
 
Mais merci pour la réponse, ca me servira surement ailleurs (et pas qu'a moi d'ailleurs !)  :)  
 
merci, a+


Message édité par Lideln le 11-02-2005 à 22:47:44
Reply

Marsh Posté le 11-02-2005 à 22:51:50    

Lideln a écrit :

Merci replix !
 
 
En fait, j'avais entre-temps opté pour une autre solution (vu que je veux juste l'état de 3 touches) : j'ai utilisé un timer (j'en avais de toutes facons besoin) qui vérifie a intervalles réguliers l'état de ces touches.
 
Mais merci pour la réponse, ca me servira surement ailleurs (et pas qu'a moi d'ailleurs !)  :)  
 
merci, a+


 [:mlc]  
 
Pas très efficace tout ca.

Reply

Marsh Posté le 11-02-2005 à 23:23:30    

WhatDe a écrit :

[:mlc]  
 
Pas très efficace tout ca.


 
Heuuuu pourrais tu expliquer pourquoi stp ?
De toutes facons je suis obligé d'utiliser le timer, alors pk pas ? mais qu'est ce qui est si lourd la dedans ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed