📄 viewport.java
字号:
/*
$Author: $
$Date: $
$Revision: $
$NoKeywords: $
*/
package jp.co.ntl.awt;
import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
import jp.co.ntl.awt.event.ViewListener;
public class Viewport extends Panel implements ComponentListener {
/**
*
*/
private static final long serialVersionUID = 1L;
private Component view;
transient protected Vector listeners = new Vector();
public Viewport(Component view) {
this.view = view;
view.addComponentListener(this);
setLayout(null);
}
public void setViewTop(int top) {
Point p = view.getLocation();
if (p.y != -top) {
view.setLocation(p.x, -top);
invalidate();
}
}
public int getViewTop() {
return -view.getLocation().y;
}
public int getViewHeight() {
return view.getSize().height;
}
public void setBounds(int x, int y, int width, int height) {
if (view != null) {
view.setSize(width, ((Scrollable)view).getScrollableHeight());
}
super.setBounds(x, y, width, height);
}
public void addViewListener(ViewListener vl) {
listeners.addElement(vl);
}
public void removeViewListener(ViewListener vl) {
listeners.removeElement(vl);
}
private void fireViewMoved(ComponentEvent ce) {
Vector v;
synchronized(this) {
v = (Vector)listeners.clone();
}
for (int i = 0; i < v.size(); i++) {
ViewListener vl = (ViewListener)v.elementAt(i);
vl.viewMoved(ce);
}
}
private void fireViewResized(ComponentEvent ce) {
Vector v;
synchronized(this) {
v = (Vector)listeners.clone();
}
for (int i = 0; i < v.size(); i++) {
ViewListener vl = (ViewListener)v.elementAt(i);
vl.viewResized(ce);
}
}
public void componentHidden(ComponentEvent ce) {}
public void componentMoved(ComponentEvent ce) {
fireViewMoved(new ComponentEvent(this, ComponentEvent.COMPONENT_MOVED));
}
public void componentShown(ComponentEvent ce) {}
public void componentResized(ComponentEvent ce) {
fireViewResized(new ComponentEvent(this, ComponentEvent.COMPONENT_RESIZED));
}
public void update(Graphics g) {
paint(g);
}
/*
public void paint(Graphics g) {
Component c = getComponent(0);
if (c == null) {
super.paint(g);
return;
}
Dimension d = getSize();
Rectangle r = c.getBounds();
Shape clip = g.getClip();
if (r.y + r.height > d.height) {
g.setClip(0, 0 - r.y , d.width, d.height);
super.paint(g);
} else {
g.setClip(0, 0 - r.y, d.width, r.y + r.height);
super.paint(g);
g.setClip(0, r.y + r.height, d.width, d.height - (r.y + r.height));
g.setColor(getBackground());
g.fillRect(0, r.y + r.height, d.width, d.height - (r.y + r.height));
}
g.setClip(clip);
super.paint(g);
}
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -