基於JScrollPane
的窗口是JSplitPane
的頂部部分。如何獲取基於JScrollPane的窗口的可見部分的尺寸
getBounds()
,getWidth()
,getHeight()
都返回窗口的全尺寸,包括無形的(滾動)的一部分。
我只想知道可見部分的尺寸。
基於JScrollPane
的窗口是JSplitPane
的頂部部分。如何獲取基於JScrollPane的窗口的可見部分的尺寸
getBounds()
,getWidth()
,getHeight()
都返回窗口的全尺寸,包括無形的(滾動)的一部分。
我只想知道可見部分的尺寸。
這是打印可見部分僅的高度和寬度的例子,
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);
}
}
你看JViewport,你可以從JScrollPane
獲得JViewpor噸我認爲你正在尋找JComponent#getVisibleRect()。
返回
Component
的‘可見矩形’ - 此組件的可見矩形,new Rectangle(0, 0, getWidth(), getHeight())
的交集,並且其所有祖先「可見矩形。
不幸的是,我不能改變這個類的代碼,我只能使用它。 – Flot2011
你不需要任何類的代碼,你只需要提取JViewport並使用它 – mKorbel