📄 highlow.java
字号:
/* ===========================================================
* JFreeChart : a free chart library for the Java(tm) platform
* ===========================================================
*
* (C) Copyright 2000-2004, by Object Refinery Limited and Contributors.
*
* Project Info: http://www.jfree.org/jfreechart/index.html
*
* This library is free software; you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Foundation;
* either version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307, USA.
*
* [Java is a trademark or registered trademark of Sun Microsystems, Inc.
* in the United States and other countries.]
*
* ------------
* HighLow.java
* ------------
* (C) Copyright 2000-2004, by Andrzej Porebski and Contributors.
*
* Original Author: Andrzej Porebski;
* Contributor(s): David Gilbert (for Object Refinery Limited);
*
* $Id: HighLow.java,v 1.1 2004/08/31 14:49:29 mungady Exp $
*
* Changes (from 18-Sep-2001)
* --------------------------
* 18-Sep-2001 : Added standard header and fixed DOS encoding problem (DG);
* 17-Nov-2001 : Renamed HiLow --> HighLow (DG);
* 06-Mar-2002 : Updated import statements (DG);
* 26-Sep-2002 : Fixed errors reported by Checkstyle (DG);
*
*/
package org.jfree.chart.renderer.xy;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Paint;
import java.awt.Stroke;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
/**
* Represents one point in the high/low/open/close plot.
* <P>
* All the coordinates in this class are in Java2D space.
*
* @author Andrzej Porebski
*/
public class HighLow {
/** Useful constant for open/close value types. */
public static final int OPEN = 0;
/** Useful constant for open/close value types. */
public static final int CLOSE = 1;
/** The position of the line. */
private Line2D line;
/** The bounds. */
private Rectangle2D bounds;
/** The open value. */
private double open;
/** The close value. */
private double close;
/** The pen/brush used to draw the lines. */
private Stroke stroke;
/** The color used to draw the lines. */
private Paint paint;
/** The tick size. */
private double tickSize = 2;
/**
* Constructs a high-low item, with default values for the open/close and
* colors.
*
* @param x the x value.
* @param high the high value.
* @param low the low value.
*/
public HighLow(double x, double high, double low) {
this(x, high, low, high, low, new BasicStroke(), Color.blue);
}
/**
* Constructs a high-low item, with default values for the colors.
*
* @param x the x value.
* @param high the high value.
* @param low the low value.
* @param open the open value.
* @param close the close value.
*/
public HighLow(double x, double high, double low, double open, double close) {
this(x, high, low, open, close, new BasicStroke(), Color.blue);
}
/**
* Constructs a high-low item.
*
* @param x the x value.
* @param high the high value.
* @param low the low value.
* @param open the open value.
* @param close the close value.
* @param stroke the stroke.
* @param paint the paint.
*/
public HighLow(double x, double high, double low, double open, double close,
Stroke stroke, Paint paint) {
this.line = new Line2D.Double(x, high, x, low);
this.bounds = new Rectangle2D.Double(x - this.tickSize, high,
2 * this.tickSize, low - high);
this.open = open;
this.close = close;
this.stroke = stroke;
this.paint = paint;
}
/**
* Sets the width of the open/close tick.
*
* @param newSize the new tick size.
*/
public void setTickSize(double newSize) {
this.tickSize = newSize;
}
/**
* Returns the width of the open/close tick.
*
* @return the width of the open/close tick.
*/
public double getTickSize() {
return this.tickSize;
}
/**
* Returns the line.
*
* @return the line.
*/
public Line2D getLine() {
return this.line;
}
/**
* Returns the bounds.
*
* @return the bounds.
*/
public Rectangle2D getBounds() {
return this.bounds;
}
/**
* Returns either OPEN or CLOSE value depending on the valueType.
*
* @param valueType which value <code>{OPEN|CLOSE}</code>.
*
* @return the open value for valueType <code>OPEN</code>, the close value
* otherwise.
*/
public double getValue(int valueType) {
if (valueType == OPEN) {
return this.open;
}
else {
return this.close;
}
}
/**
* Sets either OPEN or Close value depending on the valueType.
*
* @param type the value type (OPEN or CLOSE).
* @param value the new value.
*/
public void setValue(int type, double value) {
if (type == OPEN) {
this.open = value;
}
else {
this.close = value;
}
}
/**
* Returns the line for open tick.
*
* @return the line for open tick.
*/
public Line2D getOpenTickLine() {
return getTickLine(getLine().getX1(), getValue(OPEN), (-1) * getTickSize());
}
/**
* Returns the line for close tick
*
* @return the line for close tick.
*/
public Line2D getCloseTickLine() {
return getTickLine(getLine().getX1(), getValue(CLOSE), getTickSize());
}
/**
* Helper to get the tickLine for the OPEN/CLOSE value.
*
* @param x the X coordinate of the start point of the tick line.
* @param value the OPEN or the CLOSE value.
* @param width the width of the tickLine.
*
* @return a tickLine for the OPEN or the CLOSE value.
*/
private Line2D getTickLine(double x, double value, double width) {
return new Line2D.Double(x, value, x + width, value);
}
/**
* Returns the Stroke object used to draw the line.
*
* @return the Stroke object used to draw the line.
*/
public Stroke getStroke() {
return this.stroke;
}
/**
* Returns the Paint object used to color the line.
*
* @return the Paint object used to color the line.
*/
public Paint getPaint() {
return this.paint;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -