【问题标题】:How to get the dimensions of the visible part of the JScrollPane-based window如何获取基于 JScrollPane 的窗口可见部分的尺寸
【发布时间】:2012-05-15 09:37:33
【问题描述】:

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

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

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

【问题讨论】:

    标签: java swing jscrollpane viewport jsplitpane


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      你看过JViewport,你可以从JScrollPane推导出JViewport

      【讨论】:

      • 很遗憾,我无法更改此类的代码,我只能使用它。
      • 你不需要任何类的代码,你只需要提取 JViewport 并使用它
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-28
        • 1970-01-01
        • 2015-09-21
        • 2011-05-10
        • 2011-03-04
        • 1970-01-01
        • 2011-08-26
        相关资源
        最近更新 更多