/ / JEditorPane एक JScrollPane के अंदर स्क्रॉल पट्टी नहीं दिखा रहा है

JSErollPane के अंदर जेडडिटरपेन स्क्रॉल बार नहीं दिखा रहा है - जावा, स्विंग, जेडिटर्पेन, जेएसक्रॉलबार

मैं JScrollPane में एक वेबपृष्ठ एम्बेड करने का प्रयास कर रहा हूंजो एक JEditorPane के अंदर है, जो JFrame के अंदर एक आयत है, जैसे HTML में कि आपके पास कैसे एक वेबपेज है और फिर वेबपेज पर एक छोटा आयत हो सकता है जिसमें एक अन्य वेबपेज का आईफ्रेम हो। मेरे पास सेटबाउंड्स का उपयोग करके परिभाषित एक आयत है, क्योंकि आयत वास्तविक खिड़की की तुलना में छोटा है, क्योंकि खिड़की में अन्य तत्व हैं।

        JEditorPane web = new JEditorPane();
web.setEditable(false);

try {
web.setPage("http://www.example.com");
}catch (IOException e) {
web.setContentType("text/html");
web.setText("<html>Could not load</html>");
}
final JScrollPane scrollPane = new JScrollPane(web);
getContentPane().add(scrollPane);
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
scrollPane.getVerticalScrollBar().setValue(0);
}
});
scrollPane.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scrollPane.setPreferredSize(new Dimension(250, 145));
scrollPane.setMinimumSize(new Dimension(10, 10));
rweb = new Rectangle(20, 20, 1150, 600);
web.setBounds(rweb);
window.add(web);

उत्तर:

जवाब के लिए 3 № 1

मैंने आपका कोड सरल कर दिया। निम्नलिखित कार्य करता है।

आपके पास कई अतिरिक्त बयान थे जो जटिल चीजों को जोड़ रहे थे जैसे कि जोड़ना web दो बार (एक बार स्क्रॉल करने के लिए और एक बार JFrame के लिए)।

एक और उदाहरण है scrollPane.getVerticalScrollBar().setValue(0); । डिफ़ॉल्ट रूप से स्क्रॉलबार शून्य पर शुरू होता है।

import java.awt.Dimension;
import java.io.IOException;

import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;

public class webPane extends JFrame {

public static void main(String args[])
{
webPane e = new  webPane();
e.setVisible(true);
}


public webPane() {

JEditorPane web = new JEditorPane();
web.setEditable(false);

try {
web.setPage("http://www.cnn.com");
} catch (IOException e) {
web.setContentType("text/html");
web.setText("<html>Could not load</html>");
}

final JScrollPane scrollPane = new JScrollPane(web);
getContentPane().add(scrollPane);
this.setBounds( 0, 0, 200, 200);

}

}

जवाब के लिए 2 № 2

आप क्यों उपयोग कर रहे हैं setBounds()? यह आपके बनाता है JEditorPane आकार निरपेक्ष, अर्थात गैर-आकार बदलने योग्य और JScrollPane केवल तभी काम करता है जब यह आकार बदलने योग्य हो setBounds().

इसके अलावा, आप जोड़ रहे हैं JEditorPane अपनी खिड़की के लिए और नहीं JScrollBar तो आप "की कार्यक्षमता को छोड़ रहे हैं JScrollBar.

यहां छवि विवरण दर्ज करें

तो बस अपनी अंतिम लाइनों को बदलने से आपकी समस्या ठीक हो जाती है

//rweb = new Rectangle(20, 20, 1150, 600);
//web.setBounds(rweb);
window.add(scrollPane);