📄 thermometerplot.java
字号:
* @param axis the new axis (<code>null</code> not permitted).
*
* @see #getRangeAxis()
*/
public void setRangeAxis(ValueAxis axis) {
if (axis == null) {
throw new IllegalArgumentException("Null 'axis' argument.");
}
// plot is registered as a listener with the existing axis...
this.rangeAxis.removeChangeListener(this);
axis.setPlot(this);
axis.addChangeListener(this);
this.rangeAxis = axis;
notifyListeners(new PlotChangeEvent(this));
}
/**
* Returns the lower bound for the thermometer. The data value can be set
* lower than this, but it will not be shown in the thermometer.
*
* @return The lower bound.
*
* @see #setLowerBound(double)
*/
public double getLowerBound() {
return this.lowerBound;
}
/**
* Sets the lower bound for the thermometer.
*
* @param lower the lower bound.
*
* @see #getLowerBound()
*/
public void setLowerBound(double lower) {
this.lowerBound = lower;
setAxisRange();
}
/**
* Returns the upper bound for the thermometer. The data value can be set
* higher than this, but it will not be shown in the thermometer.
*
* @return The upper bound.
*
* @see #setUpperBound(double)
*/
public double getUpperBound() {
return this.upperBound;
}
/**
* Sets the upper bound for the thermometer.
*
* @param upper the upper bound.
*
* @see #getUpperBound()
*/
public void setUpperBound(double upper) {
this.upperBound = upper;
setAxisRange();
}
/**
* Sets the lower and upper bounds for the thermometer.
*
* @param lower the lower bound.
* @param upper the upper bound.
*/
public void setRange(double lower, double upper) {
this.lowerBound = lower;
this.upperBound = upper;
setAxisRange();
}
/**
* Returns the padding for the thermometer. This is the space inside the
* plot area.
*
* @return The padding (never <code>null</code>).
*
* @see #setPadding(RectangleInsets)
*/
public RectangleInsets getPadding() {
return this.padding;
}
/**
* Sets the padding for the thermometer and sends a {@link PlotChangeEvent}
* to all registered listeners.
*
* @param padding the padding (<code>null</code> not permitted).
*
* @see #getPadding()
*/
public void setPadding(RectangleInsets padding) {
if (padding == null) {
throw new IllegalArgumentException("Null 'padding' argument.");
}
this.padding = padding;
notifyListeners(new PlotChangeEvent(this));
}
/**
* Returns the stroke used to draw the thermometer outline.
*
* @return The stroke (never <code>null</code>).
*
* @see #setThermometerStroke(Stroke)
* @see #getThermometerPaint()
*/
public Stroke getThermometerStroke() {
return this.thermometerStroke;
}
/**
* Sets the stroke used to draw the thermometer outline and sends a
* {@link PlotChangeEvent} to all registered listeners.
*
* @param s the new stroke (<code>null</code> ignored).
*
* @see #getThermometerStroke()
*/
public void setThermometerStroke(Stroke s) {
if (s != null) {
this.thermometerStroke = s;
notifyListeners(new PlotChangeEvent(this));
}
}
/**
* Returns the paint used to draw the thermometer outline.
*
* @return The paint (never <code>null</code>).
*
* @see #setThermometerPaint(Paint)
* @see #getThermometerStroke()
*/
public Paint getThermometerPaint() {
return this.thermometerPaint;
}
/**
* Sets the paint used to draw the thermometer outline and sends a
* {@link PlotChangeEvent} to all registered listeners.
*
* @param paint the new paint (<code>null</code> ignored).
*
* @see #getThermometerPaint()
*/
public void setThermometerPaint(Paint paint) {
if (paint != null) {
this.thermometerPaint = paint;
notifyListeners(new PlotChangeEvent(this));
}
}
/**
* Returns a code indicating the unit display type. This is one of
* {@link #UNITS_NONE}, {@link #UNITS_FAHRENHEIT}, {@link #UNITS_CELCIUS}
* and {@link #UNITS_KELVIN}.
*
* @return The units type.
*
* @see #setUnits(int)
*/
public int getUnits() {
return this.units;
}
/**
* Sets the units to be displayed in the thermometer. Use one of the
* following constants:
*
* <ul>
* <li>UNITS_NONE : no units displayed.</li>
* <li>UNITS_FAHRENHEIT : units displayed in Fahrenheit.</li>
* <li>UNITS_CELCIUS : units displayed in Celcius.</li>
* <li>UNITS_KELVIN : units displayed in Kelvin.</li>
* </ul>
*
* @param u the new unit type.
*
* @see #getUnits()
*/
public void setUnits(int u) {
if ((u >= 0) && (u < UNITS.length)) {
if (this.units != u) {
this.units = u;
notifyListeners(new PlotChangeEvent(this));
}
}
}
/**
* Sets the unit type.
*
* @param u the unit type (<code>null</code> ignored).
*
* @deprecated Use setUnits(int) instead. Deprecated as of version 1.0.6,
* because this method is a little obscure and redundant anyway.
*/
public void setUnits(String u) {
if (u == null) {
return;
}
u = u.toUpperCase().trim();
for (int i = 0; i < UNITS.length; ++i) {
if (u.equals(UNITS[i].toUpperCase().trim())) {
setUnits(i);
i = UNITS.length;
}
}
}
/**
* Returns a code indicating the location at which the value label is
* displayed.
*
* @return The location (one of {@link #NONE}, {@link #RIGHT},
* {@link #LEFT} and {@link #BULB}.).
*/
public int getValueLocation() {
return this.valueLocation;
}
/**
* Sets the location at which the current value is displayed and sends a
* {@link PlotChangeEvent} to all registered listeners.
* <P>
* The location can be one of the constants:
* <code>NONE</code>,
* <code>RIGHT</code>
* <code>LEFT</code> and
* <code>BULB</code>.
*
* @param location the location.
*/
public void setValueLocation(int location) {
if ((location >= 0) && (location < 4)) {
this.valueLocation = location;
notifyListeners(new PlotChangeEvent(this));
}
else {
throw new IllegalArgumentException("Location not recognised.");
}
}
/**
* Returns the axis location.
*
* @return The location (one of {@link #NONE}, {@link #LEFT} and
* {@link #RIGHT}).
*
* @see #setAxisLocation(int)
*/
public int getAxisLocation() {
return this.axisLocation;
}
/**
* Sets the location at which the axis is displayed relative to the
* thermometer, and sends a {@link PlotChangeEvent} to all registered
* listeners.
*
* @param location the location (one of {@link #NONE}, {@link #LEFT} and
* {@link #RIGHT}).
*
* @see #getAxisLocation()
*/
public void setAxisLocation(int location) {
if ((location >= 0) && (location < 3)) {
this.axisLocation = location;
notifyListeners(new PlotChangeEvent(this));
}
else {
throw new IllegalArgumentException("Location not recognised.");
}
}
/**
* Gets the font used to display the current value.
*
* @return The font.
*
* @see #setValueFont(Font)
*/
public Font getValueFont() {
return this.valueFont;
}
/**
* Sets the font used to display the current value.
*
* @param f the new font (<code>null</code> not permitted).
*
* @see #getValueFont()
*/
public void setValueFont(Font f) {
if (f == null) {
throw new IllegalArgumentException("Null 'font' argument.");
}
if (!this.valueFont.equals(f)) {
this.valueFont = f;
notifyListeners(new PlotChangeEvent(this));
}
}
/**
* Gets the paint used to display the current value.
*
* @return The paint.
*
* @see #setValuePaint(Paint)
*/
public Paint getValuePaint() {
return this.valuePaint;
}
/**
* Sets the paint used to display the current value and sends a
* {@link PlotChangeEvent} to all registered listeners.
*
* @param paint the new paint (<code>null</code> not permitted).
*
* @see #getValuePaint()
*/
public void setValuePaint(Paint paint) {
if (paint == null) {
throw new IllegalArgumentException("Null 'paint' argument.");
}
if (!this.valuePaint.equals(paint)) {
this.valuePaint = paint;
notifyListeners(new PlotChangeEvent(this));
}
}
// FIXME: No getValueFormat() method?
/**
* Sets the formatter for the value label and sends a
* {@link PlotChangeEvent} to all registered listeners.
*
* @param formatter the new formatter (<code>null</code> not permitted).
*/
public void setValueFormat(NumberFormat formatter) {
if (formatter == null) {
throw new IllegalArgumentException("Null 'formatter' argument.");
}
this.valueFormat = formatter;
notifyListeners(new PlotChangeEvent(this));
}
/**
* Returns the default mercury paint.
*
* @return The paint (never <code>null</code>).
*
* @see #setMercuryPaint(Paint)
*/
public Paint getMercuryPaint() {
return this.mercuryPaint;
}
/**
* Sets the default mercury paint and sends a {@link PlotChangeEvent} to
* all registered listeners.
*
* @param paint the new paint (<code>null</code> not permitted).
*
* @see #getMercuryPaint()
*/
public void setMercuryPaint(Paint paint) {
if (paint == null) {
throw new IllegalArgumentException("Null 'paint' argument.");
}
this.mercuryPaint = paint;
notifyListeners(new PlotChangeEvent(this));
}
/**
* Returns the flag that controls whether not value lines are displayed.
*
* @return The flag.
*
* @see #setShowValueLines(boolean)
*
* @deprecated This flag doesn't do anything useful/visible. Deprecated
* as of version 1.0.6.
*/
public boolean getShowValueLines() {
return this.showValueLines;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -