Как получить размеры видимой части окна на основе JScrollPane
этой JScrollPane
окно на основе является верхней частью JSplitPane
.
getBounds()
, getWidth()
, getHeight()
все возвращают полный размер окна, включая невидимую (прокручиваемую) часть.
Я хочу знать размеры только видимой части.
3 ответов
Это пример, который печатает высоту и ширину видимая часть только ,
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);
}
}
Я думаю, что вы ищете JComponent#getVisibleRect ().
возвращает
Component
"видимый прямоугольник" - пересечение видимого прямоугольника этого компонента,new Rectangle(0, 0, getWidth(), getHeight())
, и все видимые прямоугольники его предков.