Path: csiph.com!weretis.net!feeder4.news.weretis.net!news.trigofacile.com!.POSTED.reverse-90.fdn.fr!not-for-mail From: Yliur Newsgroups: fr.comp.lang.java Subject: Re: =?UTF-8?B?UHJvYmzDqG1l?= avec JTextPane et =?UTF-8?B?bcOpdGhv?= =?UTF-8?B?ZGU=?= paste() Date: Sun, 8 Oct 2017 12:54:20 +0200 Organization: Groupes francophones par TrigoFACILE Message-ID: <20171008125420.3fbbaf27@free.fr> References: <59d94359$0$7165$426a34cc@news.free.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Info: news.trigofacile.com; posting-account="yliur@free.fr"; posting-host="reverse-90.fdn.fr:80.67.176.90"; logging-data="9138"; mail-complaints-to="abuse@trigofacile.com" X-Newsreader: Claws Mail 3.15.1-dirty (GTK+ 2.24.31; x86_64-pc-linux-gnu) Xref: csiph.com fr.comp.lang.java:1575 Le 07 Oct 2017 21:12:57 GMT jp a écrit : > Tout d'abord, je tiens à dire que je suis impressioné par l'activité > des groupes sur usenet. Ça fait longtemps que je m'en étais éloigné > et c'est un peu désertique au niveau de la fréquentation. > > Je vais quand-même poser ma question en espérant que quelqu'un la > lira... J'ai bien lu ta question, mais les mystères de Swing ce n'est pas vraiment ma spécialité... Sur l'imbrication des composants : > Tout va bien sauf que dans ce cas, la scrollbar verticale n'apparait > jamais. Je précise qu'avant j'avais fait: > > jtextPane = new JTextPane(); > scroll_pane = new JScrollPane(jtextPane); > tabbedPane.addTab("JTextPane", null, jtextPane, null); > > Donc j'essaye autre chose selon la documentation officielle de Java: > > jtextPane = new JTextPane(); > scroll_pane = new JScrollPane(jtextPane); > tabbedPane.addTab("JTextPane", null, scroll_pane, null); Ça me paraît normal, d'après la doc de JScrollPane son constructeur prend un composant qui sera contenu dedans ("Creates a JScrollPane that displays the contents of the specified component [...]"). Donc la deuxième imbrication semble plus logique. Pour ce qui est du collage, je ne l'ai jamais fait mais si je comprends bien tu reçois un événement et en réaction à l'événement tu appelles manuellement quelque chose comme tabbedPane.getSelectedComponent().paste(), c'est ça ? Sans doute avec un transtypage. D'après la doc, getSelectedComponent est une méthode de JTabbedPane, donc ça te permet simplement de descendre d'un niveau, c'est normal : il y a plusieurs composants fils à ce composant et tu veux savoir lequel est affiché. Ensuite puisque tu connais l'imbrication de tes composants tu pourrais continuer, non ? Par exemple, si j'ai bien compris ton imbrication : JScrollPane scroll_pane = (JScrollPane) tabbedPane.getSelectedComponent() ; JTextPane jtextPane = (JTextPane) scroll_pane.getComponent (0) ; jtextPane.paste() ; Ou bien je n'ai pas compris ton problème ? Est-ce que tes constructions sont souvent plus complexes et tu cherches le composant ayant le focus par exemple ? La méthode getSelectedComponent() ne renvoie que l'onglet affiché, c'est un cas particulier des panneaux à onglets. Pour le focus j'ai trouvé ça, après une recherche rapide : c'est vieux, il y a peut-être mieux maintenant... http://baptiste-wicht.developpez.com/tutoriels/java/swing/focus/#LV Là je pense qu'il faut préciser un peu ce que tu veux faire, pour cibler la réponse. Par exemple comment veux-tu choisir le composant cible du collage ?