import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.RenderingHints;
import java.awt.geom.GeneralPath;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
* 刻度盘
* @author xdoc
*/
public class Tick extends JComponent {
private static final int VALUE_FONT_SIZE = 18;
private double from = 0;
private double to = 10;
private String type = "line";
private double major = 1;
private double minor = 0.1;
private String value = "";
private String unit = "";
public double getFrom() {
return from;
}
public Tick() {
super();
this.setPreferredSize(new Dimension(60, 60));
this.setBackground(Color.WHITE);
}
public void setFrom(double from) {
this.from = from;
}
public double getMajor() {
return major;
}
public void setMajor(double major) {
this.major = major;
}
public double getMinor() {
return minor;
}
public void setMinor(double minor) {
this.minor = minor;
}
public double getTo() {
return to;
}
public void setTo(double to) {
this.to = to;
}
public String getType() {
return type;
}
/**
* 直尺
*/
public static final String LINE = "line";
/**
* 120度圆环
*/
public static final String RING_120 = "ring120";
public static final String RING_180 = "ring180";
public static final String RING_240 = "ring240";
/**
* 圆盘
*/
public static final String CIRCLE = "circle";
public void setType(String type) {
this.type = type;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public void paintComponent(Graphics g) {
double w = this.getWidth();
double h = this.getHeight();
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setColor(this.getBackground());
g2.fillRect(0, 0, (int) w, (int) h);
g2.setColor(this.getForeground());
g2.setStroke(new BasicStroke(1));
int fontSize = 14;