defaultintervalcategorydataset.java
来自「JfreeChart 常用图表例子」· Java 代码 · 共 756 行 · 第 1/2 页
JAVA
756 行
/** * Returns a list of the categories in the dataset. * <P> * Supports the CategoryDataset interface. * * @return A list of the categories in the dataset. */ public List getColumnKeys() { // the CategoryDataset interface expects a list of categories, but // we've stored them in an array... if (this.categoryKeys == null) { return new ArrayList(); } else { return Collections.unmodifiableList( Arrays.asList(this.categoryKeys) ); } } /** * Sets the categories for the dataset. * * @param categoryKeys an array of objects representing the categories in * the dataset. */ public void setCategoryKeys(Comparable[] categoryKeys) { // check arguments... if (categoryKeys == null) { throw new IllegalArgumentException("Null 'categoryKeys' argument."); } if (categoryKeys.length != this.startData[0].length) { throw new IllegalArgumentException( "The number of categories does not match the data." ); } for (int i = 0; i < categoryKeys.length; i++) { if (categoryKeys[i] == null) { throw new IllegalArgumentException( "DefaultIntervalCategoryDataset.setCategoryKeys(): " + "null category not permitted."); } } // make the change... this.categoryKeys = categoryKeys; fireDatasetChanged(); } /** * Returns the data value for one category in a series. * <P> * This method is part of the CategoryDataset interface. Not particularly * meaningful for this class...returns the end value. * @param series The required series (zero based index). * @param category The required category. * @return The data value for one category in a series (null possible). */ public Number getValue(Comparable series, Comparable category) { int seriesIndex = getSeriesIndex(series); int itemIndex = getItem(category); return getValue(seriesIndex, itemIndex); } /** * Returns the data value for one category in a series. * <P> * This method is part of the CategoryDataset interface. Not particularly * meaningful for this class...returns the end value. * * @param series the required series (zero based index). * @param category the required category. * * @return The data value for one category in a series (null possible). */ public Number getValue(int series, int category) { return getEndValue(series, category); } /** * Returns the start data value for one category in a series. * * @param series the required series. * @param category the required category. * * @return The start data value for one category in a series * (possibly <code>null</code>). */ public Number getStartValue(Comparable series, Comparable category) { int seriesIndex = getSeriesIndex(series); int itemIndex = getItem(category); return getStartValue(seriesIndex, itemIndex); } /** * Returns the start data value for one category in a series. * * @param series the required series (zero based index). * @param category the required category. * * @return The start data value for one category in a series * (possibly <code>null</code>). */ public Number getStartValue(int series, int category) { // check arguments... if ((series < 0) || (series >= getSeriesCount())) { throw new IllegalArgumentException( "DefaultIntervalCategoryDataset.getValue(): " + "series index out of range."); } if ((category < 0) || (category >= getCategoryCount())) { throw new IllegalArgumentException( "DefaultIntervalCategoryDataset.getValue(): " + "category index out of range."); } // fetch the value... return this.startData[series][category]; } /** * Returns the end data value for one category in a series. * * @param series the required series. * @param category the required category. * * @return The end data value for one category in a series (null possible). */ public Number getEndValue(Comparable series, Comparable category) { int seriesIndex = getSeriesIndex(series); int itemIndex = getItem(category); return getEndValue(seriesIndex, itemIndex); } /** * Returns the end data value for one category in a series. * * @param series the required series (zero based index). * @param category the required category. * * @return The end data value for one category in a series (null possible). */ public Number getEndValue(int series, int category) { // check arguments... if ((series < 0) || (series >= getSeriesCount())) { throw new IllegalArgumentException( "DefaultIntervalCategoryDataset.getValue(): " + "series index out of range."); } if ((category < 0) || (category >= getCategoryCount())) { throw new IllegalArgumentException( "DefaultIntervalCategoryDataset.getValue(): " + "category index out of range."); } // fetch the value... return this.endData[series][category]; } /** * Sets the start data value for one category in a series. * * @param series the series (zero-based index). * @param category the category. * * @param value The value. */ public void setStartValue(int series, Object category, Number value) { // does the series exist? if ((series < 0) || (series > getSeriesCount())) { throw new IllegalArgumentException( "DefaultIntervalCategoryDataset.setValue: " + "series outside valid range."); } // is the category valid? int categoryIndex = getCategoryIndex(category); if (categoryIndex < 0) { throw new IllegalArgumentException( "DefaultIntervalCategoryDataset.setValue: " + "unrecognised category."); } // update the data... this.startData[series][categoryIndex] = value; fireDatasetChanged(); } /** * Sets the end data value for one category in a series. * * @param series the series (zero-based index). * @param category the category. * * @param value the value. */ public void setEndValue(int series, Object category, Number value) { // does the series exist? if ((series < 0) || (series > getSeriesCount())) { throw new IllegalArgumentException( "DefaultIntervalCategoryDataset.setValue: " + "series outside valid range."); } // is the category valid? int categoryIndex = getCategoryIndex(category); if (categoryIndex < 0) { throw new IllegalArgumentException( "DefaultIntervalCategoryDataset.setValue: " + "unrecognised category."); } // update the data... this.endData[series][categoryIndex] = value; fireDatasetChanged(); } /** * Returns the index for the given category. * * @param category the category. * * @return The index. */ private int getCategoryIndex(Object category) { int result = -1; for (int i = 0; i < this.categoryKeys.length; i++) { if (category.equals(this.categoryKeys[i])) { result = i; break; } } return result; } /** * Generates an array of keys, by appending a space plus an integer * (starting with 1) to the supplied prefix string. * * @param count the number of keys required. * @param prefix the name prefix. * * @return An array of <i>prefixN</i> with N = { 1 .. count}. */ private Comparable[] generateKeys(int count, String prefix) { Comparable[] result = new Comparable[count]; String name; for (int i = 0; i < count; i++) { name = prefix + (i + 1); result[i] = name; } return result; } /** * Returns a column key. * * @param item the column index. * * @return The column key. */ public Comparable getColumnKey(int item) { return this.categoryKeys[item]; } /** * Returns a column index. * * @param columnKey the column key. * * @return The column index. */ public int getColumnIndex(Comparable columnKey) { List categories = getCategories(); return categories.indexOf(columnKey); } /** * Returns a row index. * * @param rowKey the row key. * * @return The row index. */ public int getRowIndex(Comparable rowKey) { List seriesKeys = getSeries(); return seriesKeys.indexOf(rowKey); } /** * Returns a list of the series in the dataset. * <P> * Supports the CategoryDataset interface. * * @return A list of the series in the dataset. */ public List getRowKeys() { // the CategoryDataset interface expects a list of series, but // we've stored them in an array... if (this.seriesKeys == null) { return new java.util.ArrayList(); } else { return Collections.unmodifiableList(Arrays.asList(this.seriesKeys)); } } /** * Returns the name of the specified series. * * @param series the index of the required series (zero-based). * * @return The name of the specified series. */ public Comparable getRowKey(int series) { if ((series >= getSeriesCount()) || (series < 0)) { throw new IllegalArgumentException( "DefaultCategoryDataset.getSeriesName(int): no such series."); } return this.seriesKeys[series]; } /** * Returns the number of categories in the dataset. This method is part of * the {@link CategoryDataset} interface. * * @return The number of categories in the dataset. */ public int getColumnCount() { int result = 0; if (this.startData != null) { if (getSeriesCount() > 0) { result = this.startData[0].length; } } return result; } /** * Returns the number of series in the dataset (possibly zero). * * @return The number of series in the dataset. */ public int getRowCount() { int result = 0; if (this.startData != null) { result = this.startData.length; } return result; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?