2017-03-06 3 views
0

Ich bekomme nicht die vertikalen Bildlaufleisten. scrollen Sie die JTextPane. Ich verwende JPanel, um die JTextPane innerhalb von JScrollPane zu zeigen. Hier ist der Code. Bitte überprüfen sie es. danke.Keine Bildlaufleisten in 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(); 
    } 
} 

Antwort

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); 

Sie erstellen die Scroll-Fenster, um den Textbereich verwendet, die korrekt ist.

Aber dann fügen Sie den Textbereich zum Panel hinzu. Dies funktioniert nicht, da eine Komponente nur ein einziges übergeordnetes Element haben kann. Daher wird der Textbereich aus dem Bildlaufbereich entfernt.

So loswerden die Platte und fügen Sie einfach die Bildlaufleiste auf den Rahmen.

Außerdem ist keine setSize (...) erforderlich, da der Layoutmanager des Bildlauffensters die Größe des Textfensters bestimmt.

So Ihre grundlegenden Code sollte einfach sein:

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

ja mein Fehler das ist. ich danke dir sehr – Sumit