2017-03-06 4 views
0

Je ne reçois pas les barres de défilement verticales. pour faire défiler la JTextPane. j'utilise JPanel pour montrer le JTextPane à l'intérieur de JScrollPane. voici le code. veuillez le revoir. merci.Ne pas obtenir les barres de défilement dans JTextPane

these is the image of output i am getting.

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

class TestWithHtml 
{ 
    JTextPane textpane; 
    JPanel panel; 
    JFrame frame; 
    JScrollPane scrollpane; 

    TestWithHtml() 
    { 
     frame = new JFrame("Text With HTML"); 
     frame.setSize(200,300); 

     panel = new JPanel(new BorderLayout()); 
     panel.setBounds(0,0,200,300); 

     textpane = new JTextPane(); 
     Dimension size = new Dimension(200,300); 
     //frame.getContentPane() 
     scrollpane = new JScrollPane(textpane); 
     panel.add(scrollpane, BorderLayout.CENTER); 
     textpane.setSize(size); 
     scrollpanel.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); 

     panel.add(textpane); 
     frame.add(panel); 
     textpane.setEditable(false); 
     textpane.setContentType("text/html"); 
     textpane.setText("<b> hry </b>"); 
     textpane.setText("<p><b>Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. </b></p>"); 

     frame.setVisible(true); 
    } 

    public static void main(String args[]) 
    { 
     new TestWithHtml(); 
    } 
} 

Répondre

1
scrollpane = new JScrollPane(textpane); 
panel.add(scrollpane, BorderLayout.CENTER); 
textpane.setSize(size); 
scrollpane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); 
panel.add(textpane); 
frame.add(panel); 

Vous créez le volet de défilement à l'aide du volet de texte qui est correct.

Mais vous ajoutez ensuite le volet de texte au panneau. Cela ne fonctionnera pas car un composant ne peut avoir qu'un seul parent, de sorte que le volet de texte est supprimé du volet de défilement.

Débarrassez-vous du panneau et ajoutez simplement le volet de défilement au cadre.

De même, le paramètre setSize (...) n'est pas nécessaire car le gestionnaire de disposition du volet de défilement déterminera la taille du volet de texte.

Ainsi, votre code de base doit être juste:

scrollpane = new JScrollPane(textpane); 
scrollpane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); 
frame.add(scrollpane); 
+0

ouais Thats my erreur. Merci beaucoup – Sumit