2012-05-06 11 views

risposta

7

Questo è un esempio che stampare l'altezza e la larghezza della parte visibili solo,

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

voi hanno un'occhiata a JViewport, è possibile derivare JViewpor t da JScrollPane

+0

Purtroppo, non posso cambiare il codice di classe, posso lavorare solo con esso. – Flot2011

+0

non è possibile richiedere alcun codice di classe, è necessario solo estrarre JViewport e lavorarci – mKorbel

2

Penso che si sta cercando JComponent#getVisibleRect().

Restituisce il Component 's 'rettangolo visibile' - l'intersezione del rettangolo di visibile di questa componente, new Rectangle(0, 0, getWidth(), getHeight()), e tutti i suoi antenati rettangoli visibili.