亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? positioner.java

?? 打印管理程序,測試完全通過.windows開發環境.
?? JAVA
字號:
/*
    $Author: $
    $Date: $
    $Revision: $
    $NoKeywords: $
*/
package jp.co.ntl.swing;

import java.awt.AWTEvent;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
//import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.*;

import javax.swing.JComponent;

import jp.co.ntl.awt.event.ChangeEvent;
import jp.co.ntl.awt.event.ChangeListener;
import jp.co.ntl.awt.event.ChangeSupport;

public class Positioner extends JComponent {
    /**
	 * 
	 */
	private static final long serialVersionUID = 5136093974034886700L;
	private static final int ROW_COUNT      = 3;
    private static final int COLUMN_COUNT   = 3;
    
    private Color backColor = Color.white;//Color.lightGray;
    private Color laticeColor = Color.lightGray;//Color.white;
    private Color boxColor = Color.black;
    private Color boxShadowColor = Color.gray;
    
    private ChangeSupport support;
    
    private int currentPos = 4; // 0 乣 ROW_COUNT * COLUMN_COUNT - 1
    private int[] laticeX;
    private int[] laticeY;
    private Rectangle[] boxes;
    
    private int offsetX = 0;
    private int offsetY = 0;
    private int dispOffsetX = 0;
    private int dispOffsetY = 0;
  
    private float scale = 1.0f;
    
    public Positioner(int width, int height, float scale) {
        this.scale = scale;
        
        laticeX = new int[COLUMN_COUNT + 1];
        laticeY = new int[ROW_COUNT + 1];
        for (int i = 0; i < laticeX.length - 1; i++) {
            laticeX[i] = width * i / COLUMN_COUNT;
        }
        laticeX[laticeX.length - 1] = width - 1;
        for (int i = 0; i < laticeY.length - 1; i++) {
            laticeY[i] = height * i / ROW_COUNT;
        }
        laticeY[laticeY.length - 1] = height - 1;

        boxes = new Rectangle[ROW_COUNT * COLUMN_COUNT];
        int index = 0;
        for (int j = 0; j < ROW_COUNT; j++) {
            for (int i = 0; i < COLUMN_COUNT; i++) {
                boxes[index++] = new Rectangle(laticeX[i], 
                                               laticeY[j], 
                                               laticeX[i + 1] - laticeX[i], 
                                               laticeY[j + 1] - laticeY[j]);
            }
        }
        setSize(width, height);
        
        enableEvents(AWTEvent.MOUSE_EVENT_MASK);
        
        support = new ChangeSupport();
    }
    
    public void setOffset(int offsetX, int offsetY) {
        this.offsetX = offsetX;
        this.offsetY = offsetY;
        this.dispOffsetX = convert(offsetX);
        this.dispOffsetY = -convert(offsetY);
        
        repaint();
    }
    
    public int getOffsetX() {
        return offsetX;
    }
    
    public int getOffsetY() {
        return offsetY;
    }
    
    private int convert(int offset) {
        return (int)(offset * scale);
    }
    
    public void setPosition(int pos) {
        currentPos = pos;
    }
    
    public int getPosition() {
        return currentPos;
    }
    
    public void addChangeListener(ChangeListener cl) {
        support.addChangeListener(cl);
    }
    
    public void removeChangeListner(ChangeListener cl) {
        support.removeChangeListener(cl);
    }
    
    public void update(Graphics g) {
        paint(g);
    }
    
//    private Image backImage = null;
//    private Graphics gImage = null;
    /*
    public void paint(Graphics g) {
        if (backImage == null) {
            Dimension d = getSize();
			backImage = createImage(d.width, d.height);
			gImage = backImage.getGraphics();
		}
        
        paintComponent(gImage);
     	g.drawImage(backImage, 0, 0, this);
    }*/
    
    public void paintComponent(Graphics g) {
        Dimension d = getSize();
        g.setColor(backColor);
        g.fillRect(0, 0, d.width, d.height);
        g.setColor(laticeColor);
        for (int i = 1; i < laticeX.length - 1; i++) {            
            g.drawLine(laticeX[i], 0, laticeX[i], d.height);
        }
        for (int i = 1; i < laticeY.length - 1; i++) {
            g.drawLine(0, laticeY[i], d.width, laticeY[i]);
        }
        
        Rectangle r = boxes[currentPos];
        g.setColor(boxShadowColor);
        g.drawRect(r.x, r.y, r.width, r.height);
        g.drawLine(r.x, r.y, r.x + r.width, r.y + r.height);
        g.drawLine(r.x, r.y + r.height, r.x + r.width, r.y);
        g.setColor(boxColor);
        g.drawRect(r.x + dispOffsetX, r.y + dispOffsetY, r.width, r.height);
        g.drawLine(r.x + dispOffsetX, r.y + dispOffsetY, r.x + dispOffsetX + r.width, r.y + dispOffsetY + r.height);
        g.drawLine(r.x + dispOffsetX, r.y + dispOffsetY + r.height, r.x + dispOffsetX + r.width, r.y + dispOffsetY);
    }
    
    public void processMouseEvent(MouseEvent me) {
        if (me.getID() == MouseEvent.MOUSE_PRESSED) {
            Point pt = me.getPoint();
            for (int i = 0; i < boxes.length; i++) {
                if (boxes[i].contains(pt)) {
                    if (i != currentPos) {
                        currentPos = i;
                        offsetX = 0;
                        offsetY = 0;
                        dispOffsetX = convert(offsetX);
                        dispOffsetY = -convert(offsetY);
                        support.fireChangeEvent(new ChangeEvent(this)); 
                        repaint();
                    }
                    break;
                }
            }
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国av一区二区三区在线观看| 99久久免费精品高清特色大片| 国产精品69久久久久水密桃| 日本精品免费观看高清观看| 亚洲精品在线电影| 一区二区三区鲁丝不卡| 国产精品一级黄| 制服丝袜亚洲色图| 一区二区视频免费在线观看| 成人免费看视频| 久久综合久久综合久久| 日韩精品电影一区亚洲| 91福利国产成人精品照片| 国产精品国产自产拍在线| 国产精品中文字幕一区二区三区| 欧美乱熟臀69xxxxxx| 亚洲精品ww久久久久久p站| 成人精品国产一区二区4080| 久久久噜噜噜久久中文字幕色伊伊| 午夜国产精品一区| 日本韩国欧美一区二区三区| 亚洲图片激情小说| 成人美女视频在线观看18| 国产三级欧美三级| 欧美一区二区在线观看| 亚洲精品高清视频在线观看| 99v久久综合狠狠综合久久| 日本一区二区三区dvd视频在线| 美国十次综合导航| 欧美大片拔萝卜| 久久99久久久久久久久久久| 日韩视频国产视频| 久久国产剧场电影| 日韩欧美三级在线| 国产一区二区三区综合| 亚洲精品在线电影| 粉嫩欧美一区二区三区高清影视| 久久久久国产精品麻豆| 成人午夜激情片| 综合久久国产九一剧情麻豆| 色综合欧美在线视频区| 一区二区三区四区视频精品免费| 欧美主播一区二区三区| 午夜电影一区二区| 精品美女一区二区三区| 国产宾馆实践打屁股91| 最新国产成人在线观看| 91传媒视频在线播放| 日韩精品福利网| 久久免费电影网| 99久久婷婷国产| 午夜影院久久久| 精品国产一区二区亚洲人成毛片| 国产一区二区三区免费看| 欧美国产成人在线| 在线观看91精品国产入口| 青草国产精品久久久久久| 久久综合狠狠综合| 91在线视频18| 日本欧美在线观看| 国产精品麻豆久久久| 欧美日韩在线电影| 国产老女人精品毛片久久| 亚洲色欲色欲www| 欧美电影一区二区三区| 国产精品影视天天线| 亚洲免费观看高清完整版在线观看熊| 宅男噜噜噜66一区二区66| 国产成人av在线影院| 亚洲综合色丁香婷婷六月图片| 制服丝袜日韩国产| www.欧美日韩国产在线| 蜜臀精品久久久久久蜜臀| 国产精品伦一区二区三级视频| 欧美日韩一区二区三区不卡| 久久99热狠狠色一区二区| 亚洲精品第1页| 久久久久久久久久久黄色 | 一区二区三区四区亚洲| 日韩美女视频在线| 欧洲中文字幕精品| 成人免费视频视频| 美女视频黄久久| 一区二区三区中文字幕在线观看| 久久一二三国产| 欧美高清性hdvideosex| 91网站在线播放| 国产福利一区二区三区视频| 午夜激情一区二区三区| 亚洲婷婷综合久久一本伊一区| 欧美不卡一二三| 欧美日本在线播放| 色欧美日韩亚洲| 99在线精品视频| 国产精品99久久久久久有的能看| 青青青伊人色综合久久| 亚洲h动漫在线| 一级做a爱片久久| 国产精品久久精品日日| 日本一区二区三区视频视频| 日韩欧美国产成人一区二区| 欧美日本在线播放| 欧美日韩在线三级| 日本久久一区二区| 日本精品视频一区二区| 91视频国产观看| 99re热这里只有精品免费视频| 国产成人在线视频网站| 国产成人精品免费| 国产999精品久久久久久绿帽| 国产一区二区免费在线| 激情综合色综合久久| 精东粉嫩av免费一区二区三区| 日本欧美肥老太交大片| 日韩精品国产精品| 蜜桃精品在线观看| 久久超级碰视频| 国产一区二区三区免费看| 国产激情一区二区三区桃花岛亚洲| 激情小说欧美图片| 91网站视频在线观看| 亚洲一区在线观看免费观看电影高清| 成人综合在线视频| 国产一区二区电影| 国产一区二区不卡在线| 国产成人精品一区二| 99国产精品国产精品毛片| 色呦呦日韩精品| 欧美精品九九99久久| 精品捆绑美女sm三区| 日本一区二区三区久久久久久久久不| 中文字幕不卡在线观看| 亚洲伦理在线精品| 三级欧美在线一区| 韩国视频一区二区| 97久久精品人人做人人爽| 欧美三级午夜理伦三级中视频| 日韩小视频在线观看专区| 精品国产一二三区| 中文在线免费一区三区高中清不卡| 中文字幕视频一区二区三区久| 一区二区三区在线观看视频| 日韩精品乱码免费| 成人av网在线| 91精品国产91热久久久做人人| 久久久久国色av免费看影院| 一区二区三区**美女毛片| 日韩vs国产vs欧美| 成人18视频日本| 欧美久久久久久久久中文字幕| 2020国产精品自拍| 亚洲精品欧美激情| 色综合久久久网| 精品国产区一区| 一区二区三区国产豹纹内裤在线| 日本va欧美va精品| 97久久人人超碰| 精品少妇一区二区三区在线播放 | 日本美女一区二区三区| 国产精品亚洲成人| 欧美日本免费一区二区三区| 国产拍揄自揄精品视频麻豆| 日日夜夜精品视频免费| 99精品视频在线观看| 日韩精品一区二区在线| 亚洲欧美国产77777| 国产精品 日产精品 欧美精品| 欧美日韩视频在线第一区| 国产精品久久国产精麻豆99网站| 蜜桃久久精品一区二区| 欧美优质美女网站| 国产精品久久精品日日| 精品无码三级在线观看视频| 欧美日韩大陆在线| 亚洲免费av观看| 成人黄色网址在线观看| 久久久国产精品麻豆| 久久成人久久爱| 欧美一级片在线| 香蕉乱码成人久久天堂爱免费| 成人高清视频免费观看| 久久久久久久久久久电影| 日日夜夜精品免费视频| 欧美天天综合网| 亚洲三级电影网站| 99视频一区二区| 国产日韩欧美激情| 国产suv精品一区二区6| 欧美大片在线观看| 美女高潮久久久| 91精品国产综合久久精品| 亚洲成人免费观看| 欧美少妇一区二区| 亚洲一区影音先锋| 91国产福利在线| 亚洲一区二区av在线| 欧美午夜精品免费| 激情欧美一区二区三区在线观看| 国产一区三区三区| 88在线观看91蜜桃国自产|