IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

JTextPane non éditable partiellement


Sujet :

AWT/Swing Java

  1. #1
    Membre actif Avatar de schneidb
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 236
    Points : 240
    Points
    240
    Par défaut JTextPane non éditable partiellement
    Bonjour, je me demandais comment rendre une JTextPane non éditable mais seulement pour quelques lignes :

    PARAMETRE 1
    PARAMETRE 2
    PARAMETRE 3
    PARAMETRE 4
    PARAMETRE 5
    PARAMETRE 6

    Dans cet exemple paramètre 1,2 et 3 ne devraient pas être éditables.
    Merci d'avance pour vos réponses.

  2. #2
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Bonjour,
    ça a l'air un peu galère à réaliser, ton truc.
    Tu pourrais aussi bien utiliser des JTextField pour chaque paramètre, et leur enlever leur bordure. Ca doit rendre à peu près pareil au niveau graphique.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  3. #3
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut
    ou bien tu peux ajouter un CaretListener, et dans caretUpdate(CaretEvent e) tu vois si le curseur est dans l'une des 3 lignes tu fais un setEditable(false), sinon un setEditable(true).
    non testee, donc rien promis.
    qui dit Dieu n'existe pas dis que les programmes tournent sans processeur.

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    Citation Envoyé par let_me_in
    ou bien tu peux ajouter un CaretListener, et dans caretUpdate(CaretEvent e) tu vois si le curseur est dans l'une des 3 lignes tu fais un setEditable(false), sinon un setEditable(true).
    non testee, donc rien promis.
    ca ne marchera pas, car lorsqu'il aura essayé d'editer des lignes non éditables, le textpane passera en non editable et il ne pourra plus rien editer du tout.

    La solution de xavlours me semble pas mauvaises, tu peux aussi utiliser deux textpane sans bordures (un editable, l'autre non,) que tu colles l'un en dessous de l'autre.

  5. #5
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut
    Citation Envoyé par Guybrush
    Citation Envoyé par let_me_in
    ou bien tu peux ajouter un CaretListener, et dans caretUpdate(CaretEvent e) tu vois si le curseur est dans l'une des 3 lignes tu fais un setEditable(false), sinon un setEditable(true).
    non testee, donc rien promis.
    ca ne marchera pas, car lorsqu'il aura essayé d'editer des lignes non éditables, le textpane passera en non editable et il ne pourra plus rien editer du tout.

    La solution de xavlours me semble pas mauvaises, tu peux aussi utiliser deux textpane sans bordures (un editable, l'autre non,) que tu colles l'un en dessous de l'autre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    import javax.swing.*;
    import java.awt.event.*;
    import javax.swing.event.*;
    public class Text extends JFrame implements KeyListener{ 
    	JTextPane tex=new JTextPane();
     
    	public Text(){
    		tex.addKeyListener(this);
    		tex.setText("bonjour ca marche");
    		add(tex);
    		setSize(600,600);
    		setVisible(true);
    	}
     
    	public static void main(String[] ar){
    		new Text();
    	}
     
    	public void keyPressed(KeyEvent e){
    	if (tex.getCaretPosition()<=10)tex.setEditable(false);
    	else tex.setEditable(true);
            if (tex.getCaretPosition()==10&&e.getKeyCode()!=KeyEvent.VK_BACK_SPACE)tex.setEditable(true);
    	}
     
    	public void keyReleased(KeyEvent e){
    	}
     
    	public void keyTyped(KeyEvent e){
    	}
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    import javax.swing.*;
    import java.awt.event.*;
    import javax.swing.event.*;
    public class Text extends JFrame implements CaretListener{
    	JTextPane tex=new JTextPane();
     
    	public Text(){
    		tex.addCaretListener(this);
    		tex.setEditable(false);
    		tex.setText("bonjour ca marche");
    		add(tex);
    		setSize(600,600);
    		setVisible(true);
    	}
     
    	public static void main(String[] ar){
    		new Text();
    	}
     
     
    	public void caretUpdate(CaretEvent e){
    		if (e.getDot()>=10)tex.setEditable(true);
    		else tex.setEditable(false);
    	}
    }
    et pourtant ca marche.
    qui dit Dieu n'existe pas dis que les programmes tournent sans processeur.

  6. #6
    Membre actif Avatar de schneidb
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 236
    Points : 240
    Points
    240
    Par défaut
    Merci beaucoup à tous pour vos réponses! Devrais réussir à me débrouiller avec çà

  7. #7
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut
    dans ce cas, resolu en bas a gauche
    qui dit Dieu n'existe pas dis que les programmes tournent sans processeur.

  8. #8
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Pas mal. J'aurais pas cru ça possible.
    Par contre, le code du CaretListener n'est pas aussi au point que celui du KeyListener. Il doit manquer un ou deux vérifications.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  9. #9
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut
    oui j'avais pas le temps pour optimiser, et je n'en ai pas maintenant.
    qui dit Dieu n'existe pas dis que les programmes tournent sans processeur.

  10. #10
    Membre actif Avatar de schneidb
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 236
    Points : 240
    Points
    240
    Par défaut
    Citation Envoyé par let_me_in
    oui j'avais pas le temps pour optimiser, et je n'en ai pas maintenant.
    alors pourquoi tu postes ? ok je sors
    Encore merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CKEditor] Texte partiellement non éditable sous CKeditor
    Par lorentdups dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 29/12/2014, 00h14
  2. [Swing / JTable] Rendre les cellules d'un JTable non éditables
    Par Jérôme_20 dans le forum Composants
    Réponses: 20
    Dernier message: 10/02/2011, 10h32
  3. [swing] Comment rendre le bouton non éditable ... .
    Par issou dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 03/04/2006, 17h54
  4. Rendre non éditable le texte d'un Memo
    Par Pill_S dans le forum Composants VCL
    Réponses: 2
    Dernier message: 25/10/2005, 11h30
  5. rendre non éditable CRichEditView
    Par scorbo dans le forum MFC
    Réponses: 5
    Dernier message: 29/06/2004, 18h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo