?? curvechart.java
字號:
import java.awt.*;
import java.applet.*;
import java.util.*;
class CurveChart extends Object
{
Applet a;
Axis Left;
Axis Right;
Axis Bottom;
Axis Top;
boolean AxisVisible[] = new boolean[4];
Point LeftTop;
Point RightBottom;
int Width;
int Height;
String Title = new String("");
boolean TitleVisible = true;
Color TitleColor = Color.blue;
Font TitleFont = new Font("Courier",Font.PLAIN,12);
Point ChartLeftTop;
Point ChartRightBottom;
Point ChartOrigin = new Point(0,0);
int ChartWidth;
int ChartHeight;
int LeftSpace = 50;
int RightSpace = 50;
int BottomSpace = 50;
int TopSpace = 50;
int Space = 10;
Color BackgroundColor = Color.white;
Color GridColor = Color.lightGray;
Vector SeriesList = new Vector();
Legend SeriesLegend ;
CurveChart(Applet a,Point lt, Point rb)
{
this.a = a;
LeftTop = lt;
RightBottom = rb;
Width = RightBottom.x - LeftTop.x;
Height = RightBottom.y - LeftTop.y;
try
{
SeriesLegend = new Legend(a);
Left = new Axis(a,0,new Point(lt.x+LeftSpace,lt.y+TopSpace),new Point(lt.x+LeftSpace,rb.y-BottomSpace));
Bottom = new Axis(a,1,new Point(lt.x+LeftSpace,rb.y-BottomSpace), new Point(rb.x-RightSpace,rb.y-BottomSpace));
Right = new Axis(a,2,new Point(rb.x-RightSpace,lt.y+TopSpace),new Point(rb.x-RightSpace,rb.y-BottomSpace));
Top = new Axis(a,3,new Point(lt.x+LeftSpace,lt.y+TopSpace), new Point(rb.x-RightSpace,lt.y+TopSpace));
}
catch(Exception e)
{
System.out.println(e);
}
}
void setTitle(String s)
{
Title = s;
}
void setAxisVisible(boolean l, boolean b, boolean r, boolean t)
{
AxisVisible[0] = l; AxisVisible[1] = b; AxisVisible[2] = r; AxisVisible[3] = t;
}
int getSeriesCount()
{
return SeriesList.size();
}
void addSeries(Series t)
{
t.setOrigin(ChartOrigin);
SeriesList.addElement(t);
}
void addSeries()
{
Series t = new Series();
t.setOrigin(ChartOrigin);
SeriesList.addElement(t);
}
void clearSeries()
{
SeriesList.removeAllElements();
SeriesLegend.clear();
}
Series getSeries(int i)
{
if(i>SeriesList.size() || i<0)
return null;
else
return (Series)SeriesList.elementAt(i);
}
void drawGrid(Graphics g)
{
int i;
int t;
// = a.getGraphics();
g.setColor(GridColor);
for(i=1;i<Left.getTickCount();i++)
{
t = Left.getTickPosition(i);
g.drawLine(LeftTop.x+LeftSpace,t,RightBottom.x-RightSpace,t);
}
for(i=1;i<Bottom.getTickCount();i++)
{
t = Bottom.getTickPosition(i);
g.drawLine(t,LeftTop.y+TopSpace,t,RightBottom.y-BottomSpace);
}
}
void drawLegend()
{
}
void drawCurveChart(Graphics g)
{
int i;
int j;
Left.Visible = AxisVisible[0];
Bottom.Visible = AxisVisible[1];
Right.Visible = AxisVisible[2];
Top.Visible = AxisVisible[3];
// = a.getGraphics();
g.setColor(BackgroundColor);
g.fillRect(LeftTop.x, LeftTop.y, Width, Height);
SeriesLegend.clear();
for(i=0; i<SeriesList.size(); i++)
{
SeriesLegend.addLegend(((Series)SeriesList.elementAt(i)).getTitle(),((Series)SeriesList.elementAt(i)).color);
}
setSpace(g);
Point lt = LeftTop;
Point rb = RightBottom;
try
{
Left.setPosition(new Point(lt.x+LeftSpace,lt.y+TopSpace),new Point(lt.x+LeftSpace,rb.y-BottomSpace));
Bottom.setPosition(new Point(lt.x+LeftSpace,rb.y-BottomSpace), new Point(rb.x-RightSpace,rb.y-BottomSpace));
//Right.setPosition(new Point(rb.x-RightSpace,lt.y+TopSpace),new Point(rb.x-RightSpace,rb.y-BottomSpace));
//Top.setPosition(new Point(lt.x+LeftSpace,lt.y+TopSpace), new Point(rb.x-RightSpace,lt.y+TopSpace));
}
catch(Exception e)
{
}
drawGrid(g);
g.setClip(lt.x+LeftSpace,lt.y+TopSpace,Bottom.getLength(),Left.getLength());
for(i=0; i<SeriesList.size(); i++)
{
((Series)SeriesList.elementAt(i)).setOrigin(ChartOrigin);
((Series)SeriesList.elementAt(i)).setMap(Bottom.getMap(), Left.getMap());
((Series)SeriesList.elementAt(i)).setMaxMinX(Bottom.getMax(), Bottom.getMin());
((Series)SeriesList.elementAt(i)).setMaxMinY(Left.getMax(), Left.getMin());
((Series)SeriesList.elementAt(i)).draw(g);
}
g.setClip(LeftTop.x,LeftTop.y,Width,Height);
g.setColor(Right.LineColor);
g.drawLine(rb.x-RightSpace,lt.y+TopSpace,rb.x-RightSpace,rb.y-BottomSpace);
g.setColor(Top.LineColor);
g.drawLine(lt.x+LeftSpace,lt.y+TopSpace,rb.x-RightSpace,lt.y+TopSpace);
if(AxisVisible[0]) Left.draw(g);
if(AxisVisible[1]) Bottom.draw(g);
if(AxisVisible[2]) Right.draw(g);
if(AxisVisible[3]) Top.draw(g);
SeriesLegend.draw(g);
g.setColor(TitleColor);
g.setFont(TitleFont);
g.drawString(Title,LeftTop.x+(Width-RightSpace+10)/2-g.getFontMetrics().stringWidth(Title)/2,LeftTop.y+15+g.getFont().getSize());
}
void setSpace(Graphics g)
{
//s g = a.getGraphics();
LeftSpace = Left.getLabelWidth()+5+Width/40+Space;
RightSpace = Right.getLabelWidth()+Width/40+Space+SeriesLegend.getWidth()+5;
g.setFont(TitleFont);
TopSpace = Right.getLabelWidth()+Height/40+g.getFont().getSize()+20;
BottomSpace = Right.getLabelHeight()+13+Height/40;
SeriesLegend.setPoint(RightBottom.x-SeriesLegend.getWidth()-12,LeftTop.y+TopSpace+10);
ChartOrigin.x = LeftTop.x+LeftSpace;
ChartOrigin.y = RightBottom.y-BottomSpace;
}
};
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -