2012-05-06 22 views

Trả lời

7

Đây là một ví dụ mà in chiều cao và chiều rộng của phần nhìn thấy chỉ,

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

bạn có nhìn vào JViewport, bạn có thể lấy được JViewpor t từ JScrollPane

+0

Thật không may, tôi không thể thay đổi lớp mã này, tôi chỉ có thể làm việc với nó. – Flot2011

+0

bạn không thể cần bất kỳ mã nào của lớp, bạn chỉ cần trích xuất JViewport và làm việc với nó – mKorbel

2

Tôi nghĩ rằng bạn đang tìm kiếm JComponent#getVisibleRect().

Trả về Component 's 'hình chữ nhật có thể nhìn thấy' - giao điểm của hình chữ nhật có thể nhìn thấy thành phần này, new Rectangle(0, 0, getWidth(), getHeight()), và tất cả các tổ tiên của nó' hình chữ nhật có thể nhìn thấy.