JViewport类用于实现滚动。 JViewport旨在支持逻辑滚动和基于像素的滚动。通过调用JViewport.setViewPosition()方法来滚动视口的子级(称为视图)。
嵌套类
修饰符和类型 |
类 |
描述 |
protected class |
JViewport.AccessibleJViewport |
此类为Jviewport类实现可访问性支持。 |
protected class |
JViewport.ViewListener |
视图的侦听器。 |
领域
修饰符和类型 |
领域 |
描述 |
静态整数 |
BACKINGSTORE_SCROLL_MODE |
它将视口内容绘制到屏幕外图像中。 |
受保护的图像 |
backingStoreImage |
用于后备存储的视图图像。 |
静态整数 |
BLIT_SCROLL_MODE |
它使用graphics.copyArea实现滚动。 |
受保护的布尔值 |
isViewSizeSet |
确定视口尺寸后为true。 |
保护点 |
lastPaintPosition |
我们绘制的最后一个viewPosition, 因此我们知道多少后备商店图像有效。 |
protected boolean |
scrollUnderway |
scrollUnderway标志用于JList之类的组件。 |
静态整数 |
SIMPLE_SCROLL_MODE |
此模式使用非常简单的方法, 即在每次滚动时重新绘制滚动窗格的全部内容。 |
建设者
建设者 |
描述 |
JViewport() |
创建一个JViewport。 |
方法
修饰符和类型 |
方法 |
描述 |
void |
addChangeListener(ChangeListener l) |
它将ChangeListener添加到列表, 每当视图的大小, 位置或视口的范围大小发生更改时都会通知该侦听器。 |
protected LayoutManager |
createLayoutManager() |
子类可以重写此方法, 以在构造函数中安装其他布局管理器(或null)。 |
受保护的Jviewport.ViewListener |
createViewListener() |
它为视图创建一个侦听器。 |
int |
getScrollMode() |
它返回当前的滚动模式。 |
Component |
getView() |
它返回JViewport的一个孩子或null。 |
Point |
getViewPosition() |
它返回出现在视口左上角的视图坐标, 如果没有视图, 则返回0, 0。 |
Dimension |
getViewSize() |
如果尚未显式设置视图的大小, 则返回首选大小, 否则返回视图的当前大小。 |
void |
setExtentSize(Dimension newExtent) |
它使用视图坐标设置视图可见部分的大小。 |
void |
setScrollMode(int mode) |
它用于控制滚动视口内容的方法。 |
void |
setViewSize(Dimension newSize) |
它设置视图的大小。 |
JViewport示例
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.border.LineBorder;
public class ViewPortClass2 {
public static void main(String[] args) {
JFrame frame = new JFrame("Tabbed Pane Sample");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel label = new JLabel("Label");
label.setPreferredSize(new Dimension(1000, 1000));
JScrollPane jScrollPane = new JScrollPane(label);
JButton jButton1 = new JButton();
jScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
jScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
jScrollPane.setViewportBorder(new LineBorder(Color.RED));
jScrollPane.getViewport().add(jButton1, null);
frame.add(jScrollPane, BorderLayout.CENTER);
frame.setSize(400, 150);
frame.setVisible(true);
}
}
输出:
评论前必须登录!
注册