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 probleme d'alignement WYSIWYG


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 8
    Par défaut JTextPane probleme d'alignement WYSIWYG
    Voila j'ai un problème avec le composant JTextPane. Je distingue deux cas d'utilisation.
    Premier cas ça marche

    Je pars d'un document vide sans initialisation de code HTML dans mon composant. textpane.setText(null). J'utilise le bouton d'alignement centrer ou right. J'obtiens le résultat voulu dans mon composant, ainsi que pour le source HTML généré.

    Deuxième cas : marche pas

    Avant de commencer mon explication ci dessous vous trouverez le code qui met en avant le disfonctionnemt.
    J'insers du code HTML et j'essaye d'utiliser mes fonctions d'alignements qui ne déclenchent pas d'action de recadrage du texte sur mon composant JTextPane (viewer). Quand je vois le source HTML générée, il a bien été modifié. Mon composant JTextPane contient le bon code HTML mais n'update jamais l'affichage. Je n'ai aucune piste pour l'instant, j'ai forcé le repaint mais rien n'y fait.
    Je vous remercie d'avance pour votre aide.

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
     
    public class TestAlignement extends JApplet {
     
        public JTextPane viewer = new JTextPane();
        public JEditorPane sourcePane = new JEditorPane();
        public JPanel panel = new JPanel();
        public HTMLEditorKit k = new HTMLEditorKit();
        public HTMLDocument doc = (HTMLDocument) k.createDefaultDocument();
     
        public TestAlignement() {
     
    // Construction de l'Interface Graphique
    // Panel en haut avec un label et le champ de saisie
            viewer.setContentType("text/html");
            viewer.setEditable(true);
            viewer.setEditorKit(k);
            viewer.setDocument(doc);
            String text = "<html>\n" +
                          "<body>\n" +
                          "<head></head>"+
                              "<p align=\"center\">\n" + 
                                   "qsdqsd\n" + 
                              "</p>\n" +
                         "</body>\n" +
                         "</html>\n";
            viewer.setText(text);
     
            sourcePane.setContentType("text/plain");
            sourcePane.setEditable(false);
            showTree();
     
    // Zone scrollee au centre avec le document
            JScrollPane scrollPane = new JScrollPane(viewer);
            JScrollPane scrollPane2 = new JScrollPane(sourcePane);
            JPanel panel2 = new JPanel();
            panel2.add(scrollPane, null);
            panel2.add(scrollPane2, null);
            panel2.setSize(200, 200);
     
    // Ajout des composants a la fenetre
            setJMenuBar(createMenuBar());
            panel.add(createToolBar(), BorderLayout.SOUTH);
            getContentPane().add(scrollPane2, BorderLayout.SOUTH);
            getContentPane().add(scrollPane, BorderLayout.CENTER);
            getContentPane().add(panel, BorderLayout.NORTH);
        }
     
        public JMenuBar createMenuBar() {
            JMenuBar menubar = new JMenuBar();
     
            JMenu color = new JMenu("Color");
            color.add(new StyledEditorKit.ForegroundAction("Noir", Color.black));
            color.add(new StyledEditorKit.ForegroundAction("Bleu", Color.blue));
            color.add(new StyledEditorKit.ForegroundAction("Rouge", Color.red));
            color.add(new StyledEditorKit.ForegroundAction("Jaune", Color.yellow));
            menubar.add(color);
     
            return menubar;
        }
     
        public JToolBar createToolBar() {
            JToolBar bar = new JToolBar();
            JButton boldButton = new JButton();
            JButton italicButton = new JButton();
            JButton underlineButton = new JButton();
            JButton colorButton = new JButton();
            JButton cutButton = new JButton();
            JButton copyButton = new JButton();
            JButton pasteButton = new JButton();
            JButton leftButton = new JButton();
            JButton centerButton = new JButton();
            JButton rightButton = new JButton();
            JButton testButton = new JButton();
            JButton linkButton = new JButton();
            JButton imageButton = new JButton();
            JButton h1Button = new JButton();
            JButton h2Button = new JButton();
            JButton h3Button = new JButton();
     
            Action a = viewer.getActionMap().get("font-bold");
            if (a != null) {
                boldButton = bar.add(a);
                boldButton.setText("G");
            }
            a = viewer.getActionMap().get("font-italic");
            if (a != null) {
                italicButton = bar.add(a);
                italicButton.setText("I");
            }
            a = viewer.getActionMap().get("font-underline");
            if (a != null) {
                underlineButton = bar.add(a);
                underlineButton.setText("S");
            }
            bar.addSeparator();
            a = viewer.getActionMap().get(StyledEditorKit.cutAction);
            if (a != null) {
                cutButton = bar.add(a);
                cutButton.setText("X");
            }
            a = viewer.getActionMap().get(StyledEditorKit.copyAction);
            if (a != null) {
                copyButton = bar.add(a);
                copyButton.setText("C");
            }
            a = viewer.getActionMap().get(StyledEditorKit.pasteAction);
            if (a != null) {
                pasteButton = bar.add(a);
                pasteButton.setText("V");
            }
            bar.addSeparator();
            a = new StyledEditorKit.AlignmentAction("left", 0);
            if (a != null) {
                leftButton = bar.add(a);
                leftButton.setText("<");
            }
            a = new StyledEditorKit.AlignmentAction("center", 1);
            if (a != null) {
                centerButton = bar.add(a);
                centerButton.setText("-");
            }
            a = new StyledEditorKit.AlignmentAction("right", 2);
            if (a != null) {
                rightButton = bar.add(a);
                rightButton.setText(">");
            }
     
           testButton.addActionListener(new ActionListener() {
     
                public void actionPerformed(ActionEvent event) {
                    showTree();
                }
            });
            bar.add(testButton);
            testButton.setText("Show Tree");
     
            return bar;
        }
     
        @Override
        public void init() {
            setSize(600, 600);
            setVisible(Boolean.TRUE);
        }
     
     
        public void showTree() {
            Reader reader = null;
            char[] chars = getSource();
            reader = new CharArrayReader(chars);
            Document docum = new PlainDocument();
            try {
                sourcePane.getEditorKit().read(reader, docum, 0);
            } catch (Exception ignoredForNow) {
            }
            sourcePane.setDocument(docum);
        }
     
        public char[] getSource() {
            CharArrayWriter writer = null;
            writer = new CharArrayWriter();
            try {
                viewer.getEditorKit().write(writer, viewer.getDocument(), 0, viewer.getDocument().getLength());
            } catch (Exception ignoredForNow) {
            }
            return writer.toCharArray();
        }
     
        public String getTree() {
            return sourcePane.getText();
        }
    }[/INDENT]

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 8
    Par défaut
    Je mets une notification par mail pour suivre vos réponses.

Discussions similaires

  1. Probleme avec alignement de chiffres réels :(
    Par softstar dans le forum Delphi
    Réponses: 52
    Dernier message: 09/09/2006, 00h12
  2. probleme d'alignement d'un caption
    Par softstar dans le forum Delphi
    Réponses: 6
    Dernier message: 27/08/2006, 10h36
  3. [Tableaux] Probleme d'alignement des checkboxs
    Par grumly22 dans le forum Langage
    Réponses: 8
    Dernier message: 20/06/2006, 14h38
  4. probleme d'alignement vertical
    Par mangamat dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 15/02/2005, 22h46
  5. Probleme d'alignement.
    Par roots_man dans le forum ASP
    Réponses: 4
    Dernier message: 30/09/2004, 16h13

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