2012-05-06 8 views
6

यह JScrollPane आधारित विंडो JSplitPane का एक शीर्ष भाग है।JScrollPane- आधारित विंडो के दृश्य भाग के आयामों को कैसे प्राप्त करें

getBounds(), getWidth(), getHeight() सभी अदृश्य (स्क्रोल करने योग्य) भाग सहित विंडो के पूर्ण आकार को वापस कर देते हैं।

मैं केवल दृश्य भाग के आयामों को जानना चाहता हूं।

उत्तर

7

यह एक उदाहरण है जो ऊंचाई दृश्य भाग केवल की चौड़ाई प्रिंट,

import javax.swing.JFrame; 
import javax.swing.JScrollPane; 
import javax.swing.JTextPane; 

public class TestWidth { 

    public static void main(String[] args) { 

     JFrame frame = new JFrame(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     JTextPane newsTextPane = new JTextPane(); 
     newsTextPane.setEditable(false); 

     JScrollPane scrollPane = new JScrollPane(newsTextPane); 

     frame.add(scrollPane); 
     frame.setSize(300, 250); 
     frame.setVisible(true); 

     System.out.println("Height : " + scrollPane.getViewport().getSize().height + "\nWidth :" + scrollPane.getViewport().getSize().width); 
    } 
} 
4

आप JViewport पर नजर है, तो आप JScrollPane

+0

दुर्भाग्य है, मैं इस वर्ग के 'कोड को बदल नहीं सकते, मैं सिर्फ इसके साथ काम कर सकते हैं। – Flot2011

+0

आपको किसी भी कक्षा 'कोड की आवश्यकता नहीं है, आपको केवल JViewport निकालने और इसके साथ काम करने की आवश्यकता है – mKorbel

2

से JViewpor टी प्राप्त कर सकते हैं मुझे लगता है कि आप JComponent#getVisibleRect() के लिए देख रहे हैं। दिखाई आयतों -

Component 'इस घटक के दिखाई देने वाले आयत, new Rectangle(0, 0, getWidth(), getHeight()) के चौराहे, और अपने पूर्वजों के सभी रों "दिखाई आयत"' देता है।

संबंधित मुद्दे