?? ruler.java
字號:
/**
* $Id:Ruler.java $
*
* Copyright 2004 ~ 2005 JingFei International Cooperation LTD. All rights reserved. *
*/
package com.jfimagine.jfdraw.gui;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.Font;
import java.awt.Color;
import java.awt.geom.AffineTransform;
import javax.swing.JComponent;
import javax.swing.Scrollable;
import javax.swing.SwingConstants;
import com.jfimagine.jfgraph.geom.Angle;
import com.jfimagine.jfgraph.shape.decorate.JFPageFormat;
import com.jfimagine.jfgraph.shape.union.JFPage;
import com.jfimagine.jfgraph.shape.base.ShapeConst;
import com.jfimagine.utils.commonutil.CommonUtil;
import com.jfimagine.jfgraph.shape.decorate.JFRuler;
/**
* Ruler class. Horizontal or vertical rules for drawing measurement.
*
* @author CookieMaker
*
* @version $Revision: 1.1.1 $
*/
public class Ruler extends JComponent{
/** A JFRuler object to manage ruler drawing*/
private JFRuler m_ruler =new JFRuler();
/** A page reference .*/
private JFPage m_page;
/**
* Constructors
* @param o Orientation of this ruler.
* @param m True if is Metric, false english.
*/
public Ruler(int o, boolean m) {
m_ruler.setOrientation(o);
m_ruler.setIsMetric(m);
}
public void setIsMetric(boolean isMetric) {
m_ruler.setIsMetric(isMetric);
repaint();
}
public boolean isMetric() {
return m_ruler.isMetric();
}
public int getOrientation() {
return m_ruler.getOrientation();
}
public void setPreferredHeight(int ph) {
m_ruler.setHeight(ph);
setZoomScale(m_ruler.getZoomScale());
}
public void setPreferredWidth(int pw) {
m_ruler.setWidth(pw);
setZoomScale(m_ruler.getZoomScale());
}
public int getIncrement() {
return m_ruler.getIncrement();
}
public double getIncrementDouble() {
return m_ruler.getIncrementDouble();
}
/** get zoom scale
* @return the zoom scale
*/
public double getZoomScale(){
return m_ruler.getZoomScale();
}
/** set zoom scale
* @param zoomScale A new zoom scale.
*/
public void setZoomScale(double zoomScale){
m_ruler.setZoomScale(zoomScale);
Dimension d;
switch (m_ruler.getOrientation()){
case JFRuler.HORIZONTAL:
int width =(int)(m_ruler.getWidth() * zoomScale);
d =new Dimension(width,JFRuler.SIZE);
setPreferredSize(d);
setSize(d);
break;
case JFRuler.VERTICAL:
int height =(int)(m_ruler.getHeight() * zoomScale);
d =new Dimension(JFRuler.SIZE,height);
setPreferredSize(d);
setSize(d);
break;
}
repaint();
}
/** set draw page here to get scale parameters for a reference to draw a 'scaled' ruler.
* @param page A JFPage reference.
*/
public void setDrawPage(JFPage page){
m_page =page;
if (page!=null){
m_ruler.setScale(page.getScaleValue(),page.getScaleUnit(),page.getScreenUnit());
}
}
protected void paintComponent(Graphics g) {
//sometimes a page would be modified outside, so here we reset this draw page.
setDrawPage(m_page);
//draw ruler.
m_ruler.draw(g,getBackground(),Color.black,true);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -