Voilà je voudrais ajouter des scroll sur mon JTextArea (scroll vertical).
J'ai essayé à peu près tout ce qui était possible et ça ne marche pas.
voici la déclaration de mon JTextArea :
[code]final JTextArea zoneSaisie = new JTextArea(25,27);[/code]
Merci de me donner vos idées pour la déclaration et l'implémentation du JScrollPane. Je n'ai pas réussit.
/ JAVA / C / C++ / Cobol /
Pen^2 Le 04/03/2009 à 11:35Edité par Pen^2 le 04/03/2009 à 11:42 Il faut ajouter le textarea dans le jscrollpane.
Je dois avoir un exemple quelque part, un instant ! (c'est un set qq chose, pas un add)
Cela me renvoie l'erreur suivante à la compilation :
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 1, Tab count: 1
at javax.swing.JTabbedPane.checkIndex(Unknown Source)
at javax.swing.JTabbedPane.setSelectedIndex(Unknown Source)
at Fenetre$1.actionPerformed(Fenetre.java:41)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
/ JAVA / C / C++ / Cobol /
Uther Le 18/03/2009 à 09:27 D'après ton stackTarce l'erreure est probablement a la ligne 41 du fichier Fenetre.java. J'ai l'impression que tudoit vouloir utiliser un Tabbed pane qui n'existe pas.
Pen^2 Le 18/03/2009 à 10:44 Heu, déjà, le jscrollpane il faudrait peut être en faire quelque chose (i.e. l'ajouter à un composant !)
Comment ton jtextarea peut il être affiché si tu ne l'ajoute à aucun composant et que tu ne l'ajoute pas au viewportview du scrollpane ?
Sally Le 18/03/2009 à 10:47 mais il faut le mettre lui-même dans un conteneur, ton jscrollpane, a priori (double cross)

« Le bonheur, c'est une carte de bibliothèque ! » —
The gostak distims the doshes.Membrane fondatrice de la confrérie des
artistes flous.
L'univers est-il un
dodécaèdre de Poincaré ?
(``
·\ powaaaaaaaaa ! #love#
OK je comprends ce que tu veux dire.
J'ai ajouté le jtextarea dans le jscrollpane, mais ce dernier n'est dans rien, c'est ça ?
/ JAVA / C / C++ / Cobol /
Sally Le 18/03/2009 à 11:01 À vue de nez, je dirais que dans ton onglets.addTab il faut ajouter le jscrollpane à la place de la jtextarea. Ensuite la jtextarea n'est ajoutée qu'au viewport.
Ainsi tu as une hiérarchie de conteneurs : l'onglet contient un jscrollpane dont le viewport contient ta textarea.
Si tu fais autrement, tu as un onglet qui contient directement une textarea, et par ailleurs cette textarea est aussi contenue dans un scrollpane (déjà là je sais même pas si c'est vraiment possible, être contenu dans deux trucs différents à la fois, ça doit pas bien marcher en tous cas), mais ce scrollpane, n'étant contenu dans rien, n'est pas affiché !

« Le bonheur, c'est une carte de bibliothèque ! » —
The gostak distims the doshes.Membrane fondatrice de la confrérie des
artistes flous.
L'univers est-il un
dodécaèdre de Poincaré ?
(``
·\ powaaaaaaaaa ! #love#
présent, lorsque je fait : ((JTextArea)onglets.getComponentAt(onglets.getSelectedIndex()))Exact cela fonctionne. Mais cela chamboule tout mon code, car à, cela ne fonctionne bien-sur plus !
J'ai essayé de faire :
((JTextArea)((JScrollPane)onglets.getComponentAt(onglets.getSelectedIndex())).getComponent(0));
Mais en fait, j'obtiens non pas un JTextArea, mais un JViewport, que je ne peux donc pas caster en (JtextArea)..
J'ai essayé de récupérer ce qu'il y avait dans le JScrollPane, je sais pas ce que j'obtiens, mais c'est pas mon JTextArea lol !!
une idée ? après je vous laisse tranquille ;-)
/ JAVA / C / C++ / Cobol /
Pen^2 Le 18/03/2009 à 11:19 Je vais regarder l'API
Je suppose qu'il y a plus adapté que getComponent(0)
Tiens, voilà ce que me renvoit le code :
javax.swing.JTextArea[,0,0,0x0,invalid,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.basic.BasicBorders$MarginBorder@1858610,flags=296,maximumSize=,minimumSize=,preferredSize=,caretColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],colums=0,columWidth=0,rows=0,rowHeight=0,word=false,wrap=false]
/ JAVA / C / C++ / Cobol /
J'ai trouvé :
((JTextArea)((((JScrollPane)onglets.getComponentAt(onglets.getSelectedIndex())).getViewport()).getView()))
Merci à tous !!!
/ JAVA / C / C++ / Cobol /