如何获取基于JScrollPane的窗口的可见部分的尺寸

时间:2012-05-06 17:22:58

标签: java swing jscrollpane viewport jsplitpane

这个基于JScrollPane的窗口是JSplitPane的顶部。

getBounds()getWidth()getHeight()都返回窗口的完整大小,包括不可见(可滚动)部分。

我只想知道可见部分的尺寸。

3 个答案:

答案 0 :(得分:8)

这是一个仅打印可见部分的高度和宽度的示例

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

答案 1 :(得分:4)

您已查看JViewport,可以从JViewpor

获取JScrollPane t

答案 2 :(得分:2)

我认为您正在寻找JComponent#getVisibleRect()

  

返回Component的“可见矩形” - 此组件的可见矩形new Rectangle(0, 0, getWidth(), getHeight())及其所有祖先的可见矩形的交集。