jnscrollpane.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 137 行
JAVA
137 行
package org.jnode.wt.components;
import org.jnode.wt.events.JNAdjustmentEvent;
import org.jnode.wt.image.JNImage;
import org.jnode.wt.events.JNAdjustmentListener;
import java.awt.peer.ScrollPanePeer;
import java.awt.Adjustable;
/**
* @author kishore
*/
public class JNScrollPane extends JNPanel implements ScrollPanePeer, JNAdjustmentListener {
private int imglocX = 0;
private int imglocY = 0;
private int imgOriginalWidth = 0;
private int imgOriginalHeight = 0;
private int imgViewableWidth = 0;
private int imgViewableHeight = 0;
private JNScrollBar vsbar = new JNScrollBar(JNScrollBar.VERTICAL);
private JNScrollBar hsbar = new JNScrollBar(JNScrollBar.HORIZONTAL);
private JNImagePane imgpane = new JNImagePane();
/**
* JNScrollPane constructor comment.
*/
public JNScrollPane(int w, int h) {
super();
this.setSize(w, h);
vsbar.addAdjustmentListener(this);
hsbar.addAdjustmentListener(this);
this.add(vsbar);
this.add(hsbar);
this.add(imgpane);
}
public void adjustmentValueChanged(JNAdjustmentEvent e) {
int a = e.getValue();
if (e.getSource().equals(vsbar)) {
imglocY = a;
imgpane.setImageXY(imglocX, imglocY);
} else if (e.getSource().equals(hsbar)) {
imglocX = a;
imgpane.setImageXY(imglocX, imglocY);
}
}
private void calculate(int w, int h) {
int len = 20;
vsbar.setSize(len, h - len);
vsbar.setLocation(w - len, 0);
hsbar.setSize(w - len, len);
hsbar.setLocation(0, h - len);
imgViewableWidth = w - len;
imgViewableHeight = h - len;
imgpane.setSize(imgViewableWidth, imgViewableHeight);
imgpane.setLocation(0, 0);
vsbar.setMinMax(0, imgOriginalHeight - imgViewableHeight);
hsbar.setMinMax(0, imgOriginalWidth - imgViewableWidth);
}
public void setImage(JNImage jn) {
imgpane.setImage(jn);
imgOriginalWidth = jn.getWidth();
imgOriginalHeight = jn.getHeight();
}
public void setInitialLocation(int x, int y) {
if (this.isVisible()) {
imgpane.setImageXY(x, y);
}
}
public void setSize(int w, int h) {
super.setSize(w, h);
calculate(w, h);
}
public void setVisible(boolean b) {
super.setVisible(b);
if (b) {
imgpane.setImageXY(imgpane.imglocX, imgpane.imglocY);
imgpane.repaint();
}
}
public void childResized(int width, int height) {
//TODO: implement it
}
public int getHScrollbarHeight() {
//TODO: implement it
return 0;
}
public int getVScrollbarWidth() {
//TODO: implement it
return 0;
}
public void setScrollPosition(int h, int v) {
//TODO: implement it
}
public void setUnitIncrement(Adjustable item, int inc) {
//TODO: implement it
}
public void setValue(Adjustable item, int value) {
//TODO: implement it
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?