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

  FORUM HardWare.fr
  Programmation
  Java

  problème d' offset initial d'un JScrollPane et de requestFocus

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème d' offset initial d'un JScrollPane et de requestFocus

n°590021
peak
Posté le 13-12-2003 à 17:45:41  profilanswer
 

Bonjour;  
J'ai deux petits problèmes pour lesquels je n'ai toujours pas trouvé de solution. Ce n'est pas crucial mais disons que pour finiolé le boulot se serai pas mal.
Donc voila :
 
1) J'ai un JTextArea que j'ai associé à un JScroolPane. Lors de ouverture de mon prog le tout est affiché et le JTextArea charge les logs des exécutions précédentes (à partire d'un ficher). J'aimerai que le scroll soit initialement descendu au maximum et si possible systématiquement. Je ne sais pas du tout si java offre une telle fonctionnalité tout faite ou si vous avez un idée de la manière dont je doit m'y prendre?
 
2) Est-il possible de faire un requestFocus (ou identique) sur une frame contenant une table mais rien d'autre (ni button, ni field, etc).
En fait les objet du type JTable contiennent une fonction membre requestFocus() mais dans mon cas elle n'as aucun effet.... Je ne comprend pas pk?
voici le bout de mon code conserné :

Code :
  1. JFrame jframe= new JFrame("Resultat de la Selection" );
  2. jframe.setSize(640,480);
  3.         JTable jtable1 = new  JTable( tmp, nomsCols );
  4.         javax.swing.JScrollPane table1ScrollPane;
  5.         table1ScrollPane = new javax.swing.JScrollPane();
  6.         table1ScrollPane.setViewportView(jtable1);
  7.         jframe.getContentPane().add( table1ScrollPane, java.awt.BorderLayout.CENTER );
  8.         jtable1.setAutoResizeMode(jtable1.AUTO_RESIZE_OFF);
  9.         table1ScrollPane.setViewportView(jtable1);
  10.         jtable1.requestFocus();             
  11.         jframe.show();


En fait en tapant ceci je me rend compte que cela est peut être (et même sans doute) du à la fenêtre ouvrante qui se replace en fait systématiquement au-dessus de celle-ci après le show(), (en cas de sleep juste après le jframe.show() ma table reste afficher pdt le temps du sleep puis retourne en arrière plan.
 
Si le bout de code suivant à l'aire correct peut être pourriez vous me donnez quelques raisons possible d'une telle situation.
 
 
Merci   :jap:  

mood
Publicité
Posté le 13-12-2003 à 17:45:41  profilanswer
 

n°590130
nraynaud
lol
Posté le 13-12-2003 à 20:48:00  profilanswer
 

1) tu déplace le 'caret' en fin de texte.
2) j'en sais rien et les insterface qui prennent le focus d'autorité, ça me gave. En particulier quand je suis en train de tapper un mot de passe dans mon browser, et qu'une fenêtre de messagerie s'ouvre.


---------------
trainoo.com, c'est fini
n°590328
EpoK
Let's burn
Posté le 14-12-2003 à 09:50:10  profilanswer
 

pour le 1)
 

Code :
  1. Document d = jta.getDocument();
  2. Caret caret = jta.getCaret();
  3. caret.setDot(d.getEndPosition().getOffset());

n°590894
nerisson
Pic-pic
Posté le 15-12-2003 à 09:46:12  profilanswer
 

Et puis pour que ton JScrollPane descende tout seul, tu rajoute un DocumentListener sur ton JTextArea et tu implemente la methode insertUpdate comme ca:
 

Code :
  1. public void insertUpdate(final DocumentEvent e) {
  2.     final int pos = e.getOffset() + e.getLength();
  3.     jTextArea.setCaretPosition(pos);
  4.   }//end insertUpdate


---------------
Light is right
n°591162
peak
Posté le 15-12-2003 à 14:55:16  profilanswer
 

Merci à tous pour vos réponses.
 
Mais si je fait ça :  
 

Code :
  1. javax.swing.text.Document d = jta.getDocument();
  2. javax.swing.text.Caret caret = jta.getCaret();
  3. caret.setDot(d.getEndPosition().getOffset());
  4. jta.setCaret(caret);


 
y se passe rien  :??:  
 
et pour le DocumentListener: j'ai pris exemple sur un button et son addActionListener mais apparement c'est pas trop ça  :sweat:  

Code :
  1. d.addDocumentListener(new java.awt.event.TextListener(){
  2.         public void actionPerformed(javax.swing.event.DocumentEvent evt) {
  3.                 insertUpdate(evt);
  4.             }
  5.         });


 
je pense que je vais renoncer à cette idée..... :ange:


Message édité par peak le 15-12-2003 à 14:56:41

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

  problème d' offset initial d'un JScrollPane et de requestFocus

 

Sujets relatifs
Exercice d'algo [probleme resolu par Tentacle, algo p2 poste par Giz][C++ 10 lignes inside] Probleme avec programme de cryptage XOR
probleme chez freeProblème avec ZipFile et InputStream
Problème avec for_eachprobleme sql avec insert into
SHELL/TCSH : Probleme sur un script automatiqueexif_imagetype probleme
[C] Probleme exec dans un fork :DAjouter des Canvas ds JScrollPane
Plus de sujets relatifs à : problème d' offset initial d'un JScrollPane et de requestFocus


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