List of usage examples for org.jfree.data.category DefaultCategoryDataset getValue
@Override
public Number getValue(Comparable rowKey, Comparable columnKey)
From source file:it.eng.spagobi.engines.chart.bo.charttypes.targetcharts.WinLose.java
@Override public JFreeChart createChart(DatasetMap datasets) { logger.debug("IN"); DefaultCategoryDataset dataset = (DefaultCategoryDataset) datasets.getDatasets().get("1"); JFreeChart chart = ChartFactory.createBarChart(name, null, null, dataset, PlotOrientation.VERTICAL, legend, false, false);//from ww w.java 2s .c o m chart.setBorderVisible(false); chart.setBackgroundPaint(color); TextTitle title = setStyleTitle(name, styleTitle); chart.setTitle(title); if (subName != null && !subName.equals("")) { TextTitle subTitle = setStyleTitle(subName, styleSubTitle); chart.addSubtitle(subTitle); } CategoryPlot plot = chart.getCategoryPlot(); plot.setOutlineVisible(false); plot.setInsets(new RectangleInsets(0.0, 0.0, 0.0, 0.0)); plot.setBackgroundPaint(color); plot.setDomainGridlinesVisible(false); plot.setRangeGridlinesVisible(false); plot.setRangeCrosshairVisible(true); plot.setRangeCrosshairStroke(new BasicStroke(1f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); plot.setRangeCrosshairPaint(color.BLACK); // customize axes CategoryAxis domainAxis = plot.getDomainAxis(); domainAxis.setVisible(false); domainAxis.setCategoryMargin(0.2); NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setVisible(false); rangeAxis.setRange(new Range(-(barHeight + 0.2), (barHeight + 0.2))); // customize renderer MyBarRendererThresholdPaint renderer = new MyBarRendererThresholdPaint(useTargets, thresholds, dataset, timeSeries, nullValues, bottomThreshold, color); if (wlt_mode.doubleValue() == 0) { renderer.setBaseItemLabelsVisible(Boolean.FALSE, true); } else { renderer.setBaseItemLabelsVisible(Boolean.TRUE, true); renderer.setBaseItemLabelFont( new Font(styleValueLabels.getFontName(), Font.PLAIN, styleValueLabels.getSize())); renderer.setBaseItemLabelPaint(styleValueLabels.getColor()); renderer.setBaseItemLabelGenerator( new StandardCategoryItemLabelGenerator("{2}", new DecimalFormat("0.#")) { public String generateLabel(CategoryDataset dataset, int row, int column) { if (dataset.getValue(row, column) == null || dataset.getValue(row, column).doubleValue() == 0) return ""; String columnKey = (String) dataset.getColumnKey(column); int separator = columnKey.indexOf('-'); String month = columnKey.substring(0, separator); String year = columnKey.substring(separator + 1); int monthNum = Integer.parseInt(month); if (wlt_mode.doubleValue() >= 1 && wlt_mode.doubleValue() <= 4) { if (wlt_mode.doubleValue() == 2 && column % 2 == 0) return ""; Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.MONTH, monthNum - 1); SimpleDateFormat dataFormat = new SimpleDateFormat("MMM"); return dataFormat.format(calendar.getTime()); } else return "" + monthNum; } }); } if (wlt_mode.doubleValue() == 3) { renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, org.jfree.ui.TextAnchor.BOTTOM_CENTER, org.jfree.ui.TextAnchor.BOTTOM_RIGHT, Math.PI / 2)); renderer.setBaseNegativeItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE6, org.jfree.ui.TextAnchor.TOP_CENTER, org.jfree.ui.TextAnchor.HALF_ASCENT_LEFT, Math.PI / 2)); } else if (wlt_mode.doubleValue() == 4 || wlt_mode.doubleValue() == 5) { renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, org.jfree.ui.TextAnchor.BOTTOM_CENTER, org.jfree.ui.TextAnchor.BOTTOM_RIGHT, Math.PI / 4)); renderer.setBaseNegativeItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE6, org.jfree.ui.TextAnchor.TOP_CENTER, org.jfree.ui.TextAnchor.HALF_ASCENT_LEFT, Math.PI / 4)); } if (legend == true) { LegendItemCollection collection = createThresholdLegend(plot); plot.setFixedLegendItems(collection); } if (maxBarWidth != null) { renderer.setMaximumBarWidth(maxBarWidth); } //renderer.setSeriesPaint(0, Color.BLUE); plot.setRenderer(renderer); logger.debug("OUT"); if (mainThreshold == null) return null; return chart; }
From source file:org.sakaiproject.sitestats.impl.chart.ChartServiceImpl.java
private AbstractDataset getCategoryDataset(Report report) { List<Stat> reportData = report.getReportData(); // fill dataset DefaultCategoryDataset dataSet = new DefaultCategoryDataset(); String dataSource = report.getReportDefinition().getReportParams().getHowChartSource(); String categorySource = report.getReportDefinition().getReportParams().getHowChartCategorySource(); if (StatsManager.T_NONE.equals(categorySource)) { categorySource = null;//from w w w . j ava 2 s. co m } if (categorySource == null) { // without categories Set<Comparable> usedKeys = new HashSet<Comparable>(); for (Stat s : reportData) { Comparable key = getStatValue(s, dataSource); if (key != null) { if (usedKeys.contains(key)) { dataSet.incrementValue(getTotalValue(s, report).doubleValue(), key, key); } else { dataSet.addValue(getTotalValue(s, report), key, key); usedKeys.add(key); } } } } else { // with categories Map<Comparable, Comparable> usedKeys = new HashMap<Comparable, Comparable>(); for (Stat s : reportData) { Comparable key = getStatValue(s, dataSource); Comparable cat = getStatValue(s, categorySource); if (key != null && cat != null) { if (usedKeys.containsKey(cat) && key.equals(usedKeys.get(cat))) { dataSet.incrementValue(getTotalValue(s, report).doubleValue(), key, cat); } else { dataSet.addValue(getTotalValue(s, report), key, cat); usedKeys.put(cat, key); } } } // fill missing values with zeros for (Comparable c : usedKeys.keySet()) { for (Comparable k : usedKeys.values()) { if (dataSet.getValue(k, c) == null) { dataSet.addValue(0, k, c); } } } } return dataSet; }
From source file:atlas.kingj.roi.FrmMain.java
private void UpdateROIEnergy(Machine[] mach) { if (RoiData != null && results != null && RoiData.energies.size() >= results.getSize()) { // TODO first case redundant? double powercost = 0.; try {//from w w w. j av a 2 s . c om powercost = Double.parseDouble(txtenergycost.getText()); } catch (Exception e) { powercost = 0.; } RoiData.energycost = powercost; DefaultCategoryDataset energydata = new DefaultCategoryDataset(); String series1 = "Energy Costs"; for (int i = 0; i < results.getSize(); ++i) { String name = results.get(i).getModel() + ": " + results.get(i).getName(); energydata.addValue( RoiData.energies.get(listCompareRoi.getSelectedIndices()[i]).kwhrsperyear * powercost, series1, name); RoiResults.get( i).energycost = RoiData.energies.get(listCompareRoi.getSelectedIndices()[i]).kwhrsperyear * powercost; } // draw graph JFreeChart chart = ChartFactory.createBarChart("", "", "Energy Cost ( / year)", energydata, PlotOrientation.VERTICAL, false, true, false); CategoryPlot cp = chart.getCategoryPlot(); cp.setBackgroundPaint(new Color(240, 240, 240)); cp.setRangeGridlinePaint(Color.gray); CategoryItemRenderer renderer = new CustomRenderer( new Paint[] { new Color(255, 85, 85), new Color(85, 85, 255), new Color(85, 255, 85), new Color(251, 251, 0), new Color(86, 228, 200) }); cp.setRenderer(renderer); BarRenderer b = (BarRenderer) cp.getRenderer(); b.setBarPainter(new StandardBarPainter()); renderer.setBaseToolTipGenerator( new StandardCategoryToolTipGenerator("{1}, {2}", NumberFormat.getInstance())); RoiResults.setEnergyGraph(chart); // Display results graph try { pnlGraphEnergy.remove(lblNoGraph2); } catch (Exception e) { } try { pnlGraphEnergy.remove(pnlGraphEnergyInner); } catch (Exception e) { } pnlGraphEnergyInner = new ChartPanel(RoiResults.getEnergyGraph()); pnlGraphEnergyInner.setBounds(2, 2, 435, 222); pnlGraphEnergyInner.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON1 && pnlGraphEnergyInner.contains(e.getPoint()) && RoiResults != null && RoiResults.getEnergyGraph() != null) { JFreeChart chart = RoiResults.getEnergyGraph(); JFrame pop = new JFrame(); pop.getContentPane().add(new ChartPanel(chart)); try { pop.setIconImage(ImageIO.read(FrmMain.class.getResourceAsStream("/atlas/logo.png"))); } catch (Exception e11) { } pop.setTitle("ROI Graph"); pop.pack(); pop.setLocationRelativeTo(frmTitanRoiCalculator); pop.setVisible(true); } } }); pnlGraphEnergy.add(pnlGraphEnergyInner); pnlGraphEnergyInner.repaint(); // marginal improvement label int ind1 = cmbMargEnergy1.getSelectedIndex(); int ind2 = cmbMargEnergy2.getSelectedIndex(); double diff = energydata.getValue(0, ind1).doubleValue() - energydata.getValue(0, ind2).doubleValue(); lblMarginalEnergy.setText("" + formatDecimal(diff) + " per annum"); } }
From source file:atlas.kingj.roi.FrmMain.java
private void UpdateROIWaste(Machine[] mach) { if (results != null) { //ResetStatusLabel(); double wasteflags = 0.; double wasteguide = 0.; double wastetable = 0.; try {/* w ww .j av a2 s . co m*/ wasteflags = Math.max(0, Double.parseDouble(txtwastesavedflags.getText())); if (!metric) wasteflags = Core.FtToM(wasteflags); } catch (NumberFormatException e) { wasteflags = 0.; } try { wasteguide = Math.max(0, Double.parseDouble(txtwastesavedguide.getText())); if (!metric) wasteguide = Core.FtToM(wasteguide); } catch (NumberFormatException e) { wasteguide = 0.; } RoiData.wastesavedflag = wasteflags; RoiData.wastesavedguide = wasteguide; RoiData.wastesavedtable = wastetable; DefaultCategoryDataset wastedata = new DefaultCategoryDataset(); String series1 = "Waste Saved"; for (int i = 0; i < results.getSize(); ++i) { double totsave = 0.; double SchedulesPerYear = results.get(i).ScheduleTime == 0 ? 0 : environment.HrsPerYear / results.get(i).ScheduleTime; String name = results.get(i).getModel() + ": " + results.get(i).getName(); if (mach[i].flags) totsave += wasteflags * results.get(i).SplicesPerSchedule * SchedulesPerYear; if (mach[i].alignment) totsave += wasteguide * results.get(i).MothersPerSchedule * SchedulesPerYear; if (mach[i].splice_table) totsave += wastetable * results.get(i).SplicesPerSchedule * SchedulesPerYear; wastedata.addValue(totsave, series1, name); RoiResults.get(i).wastesave = totsave; double conversion = results.get(i).getResult(ResultType.LENGTH, ResultTime.HOUR) == 0 ? 0 : results.get(i).getResult(ResultType.WEIGHT, ResultTime.HOUR) / results.get(i).getResult(ResultType.LENGTH, ResultTime.HOUR) / 1000; RoiResults.get(i).wasteval = totsave * conversion * RoiData.sellingprice; } // draw graph JFreeChart chart = ChartFactory.createBarChart("", "", "Waste Reduced (m / year)", wastedata, PlotOrientation.VERTICAL, false, true, false); CategoryPlot cp = chart.getCategoryPlot(); cp.setBackgroundPaint(new Color(240, 240, 240)); cp.setRangeGridlinePaint(Color.gray); CategoryItemRenderer renderer = new CustomRenderer( new Paint[] { new Color(255, 85, 85), new Color(85, 85, 255), new Color(85, 255, 85), new Color(251, 251, 0), new Color(86, 228, 200) }); cp.setRenderer(renderer); BarRenderer b = (BarRenderer) cp.getRenderer(); b.setBarPainter(new StandardBarPainter()); renderer.setBaseToolTipGenerator( new StandardCategoryToolTipGenerator("{1}, {2}m", NumberFormat.getInstance())); RoiResults.setWasteGraph(chart); // Display results graph try { pnlGraphWaste.remove(lblNoGraph4); } catch (Exception e) { } try { pnlGraphWaste.remove(pnlGraphWasteInner); } catch (Exception e) { } pnlGraphWasteInner = new ChartPanel(RoiResults.getWasteGraph()); pnlGraphWasteInner.setBounds(2, 2, 435, 258); pnlGraphWasteInner.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON1 && pnlGraphWasteInner.contains(e.getPoint()) && RoiResults != null && RoiResults.getWasteGraph() != null) { JFreeChart chart = RoiResults.getWasteGraph(); JFrame pop = new JFrame(); pop.getContentPane().add(new ChartPanel(chart)); try { pop.setIconImage(ImageIO.read(FrmMain.class.getResourceAsStream("/atlas/logo.png"))); } catch (Exception e11) { } pop.setTitle("ROI Graph"); pop.pack(); pop.setLocationRelativeTo(frmTitanRoiCalculator); pop.setVisible(true); } } }); pnlGraphWaste.add(pnlGraphWasteInner); pnlGraphWasteInner.repaint(); // marginal improvement label int ind1 = cmbMargWaste1.getSelectedIndex(); int ind2 = cmbMargWaste2.getSelectedIndex(); double diff = wastedata.getValue(0, ind2).doubleValue() - wastedata.getValue(0, ind1).doubleValue(); lblMarginalWaste.setText( formatDecimal((metric ? diff : Core.MToFt(diff))) + (metric ? "m per annum" : "ft per annum")); if (RoiData.value <= 0) lblMarginalWasteValue.setText("(0.00 per annum)"); else { double conversion1 = results.get(ind1).getResult(ResultType.LENGTH, ResultTime.HOUR) == 0 ? 0 : results.get(ind1).getResult(ResultType.WEIGHT, ResultTime.HOUR) / results.get(ind1).getResult(ResultType.LENGTH, ResultTime.HOUR); double conversion2 = results.get(ind2).getResult(ResultType.LENGTH, ResultTime.HOUR) == 0 ? 0 : results.get(ind2).getResult(ResultType.WEIGHT, ResultTime.HOUR) / results.get(ind2).getResult(ResultType.LENGTH, ResultTime.HOUR); double weight1 = conversion1 * wastedata.getValue(0, ind1).doubleValue(); double weight2 = conversion2 * wastedata.getValue(0, ind2).doubleValue(); double diff_weight = weight2 - weight1; // convert to tonnes diff_weight = diff_weight / 1000; lblMarginalWasteValue .setText("(" + formatDecimal(diff_weight * RoiData.sellingprice) + " per annum)"); } } }
From source file:atlas.kingj.roi.FrmMain.java
private void UpdateROIProd(Machine[] machs) { //TODO don't need machs actually... (part of results) if (results != null && RoiData.value >= 0) { if (listCompareRoi.getSelectedIndices().length > 1) { DefaultCategoryDataset roidata = new DefaultCategoryDataset(); String series1 = "Value Added"; double offset = 0.; for (int i = 0; i < results.getSize(); ++i) { String name = results.get(i).getModel() + ": " + results.get(i).getName(); if (i == 0) { // offset all relative to first value offset = results.get(i).getResult(ResultType.WEIGHT, ResultTime.YEAR) * RoiData.value / 1000;/*from w w w. ja v a2 s .co m*/ roidata.addValue(0, series1, name); RoiResults.get(i).value = 0; } else { roidata.addValue( results.get(i).getResult(ResultType.WEIGHT, ResultTime.YEAR) * RoiData.value / 1000 - offset, series1, name); RoiResults.get(i).value = results.get(i).getResult(ResultType.WEIGHT, ResultTime.YEAR) * RoiData.value / 1000 - offset; } } // draw graph JFreeChart chart = ChartFactory.createBarChart("", "", "Relative Value Added (/year)", roidata, PlotOrientation.VERTICAL, false, true, false); CategoryPlot cp = chart.getCategoryPlot(); cp.setBackgroundPaint(new Color(240, 240, 240)); cp.setRangeGridlinePaint(Color.gray); CategoryItemRenderer renderer = new CustomRenderer( new Paint[] { new Color(255, 85, 85), new Color(85, 85, 255), new Color(85, 255, 85), new Color(251, 251, 0), new Color(86, 228, 200) }); cp.setRenderer(renderer); BarRenderer b = (BarRenderer) cp.getRenderer(); b.setBarPainter(new StandardBarPainter()); renderer.setBaseToolTipGenerator( new StandardCategoryToolTipGenerator("{1}, {2}", NumberFormat.getInstance())); ValueAxis va = cp.getRangeAxis(); va.setLabelFont(new Font("Tahoma", Font.BOLD, 13)); ResetStatusLabel(); RoiResults.setProdGraph(chart); // Display results graph try { pnlGraphProd.remove(lblNoGraph); } catch (Exception e) { } try { pnlGraphProd.remove(pnlGraphProdInner); } catch (Exception e) { } pnlGraphProdInner = new ChartPanel(RoiResults.getProdGraph()); pnlGraphProdInner.setBounds(2, 2, 435, 226); pnlGraphProdInner.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON1 && pnlGraphProdInner.contains(e.getPoint()) && RoiResults != null && RoiResults.getProdGraph() != null) { JFreeChart chart = RoiResults.getProdGraph(); JFrame pop = new JFrame(); pop.getContentPane().add(new ChartPanel(chart)); try { pop.setIconImage( ImageIO.read(FrmMain.class.getResourceAsStream("/atlas/logo.png"))); } catch (Exception e11) { } pop.setTitle("ROI Graph"); pop.pack(); pop.setLocationRelativeTo(frmTitanRoiCalculator); pop.setVisible(true); } } }); pnlGraphProd.add(pnlGraphProdInner); pnlGraphProdInner.repaint(); // marginal improvement label int ind1 = cmbMarg1.getSelectedIndex(); int ind2 = cmbMarg2.getSelectedIndex(); double diff = roidata.getValue(0, ind2).doubleValue() - roidata.getValue(0, ind1).doubleValue(); lblMarginalImprovement.setText("" + formatDecimal(diff) + " per annum"); } else { ResetStatusLabel(); ShowMessageStandard("Select at least 2 machines to view marginal benefits."); lblMarginalImprovement.setText("0.00 per annum"); // Display results graph try { pnlGraphProd.remove(pnlGraphProdInner); } catch (Exception e) { } pnlGraphProd.add(lblNoGraph); lblNoGraph.repaint(); } } else { ShowMessageStandard("Enter relevant data above to view graph."); lblMarginalImprovement.setText("0.00 per annum"); // Display results graph try { pnlGraphProd.remove(pnlGraphProdInner); } catch (Exception e2) { } pnlGraphProd.add(lblNoGraph); lblNoGraph.repaint(); } }
From source file:atlas.kingj.roi.FrmMain.java
private void UpdateROIMaint(Machine[] mach) { //ResetStatusLabel(); if (results != null && RoiData.maintenance.size() >= results.getSize()) { DefaultCategoryDataset maintdata = new DefaultCategoryDataset(); String series1 = "Basic Costs"; String series2 = "Production Loss"; for (int i = 0; i < results.getSize(); ++i) { String name = results.get(i).getModel() + ": " + results.get(i).getName(); maintdata.addValue(RoiData.maintenance.get(listCompareRoi.getSelectedIndices()[i]).totcost, series1, name);//from w w w . ja v a2 s . c o m maintdata.addValue( RoiData.value * RoiData.maintenance.get(listCompareRoi.getSelectedIndices()[i]).tothours * results.get(i).getResult(ResultType.WEIGHT, ResultTime.HOUR) / 1000, series2, name); RoiResults.get(i).prodloss = RoiData.value * RoiData.maintenance.get(listCompareRoi.getSelectedIndices()[i]).tothours * results.get(i).getResult(ResultType.WEIGHT, ResultTime.HOUR) / 1000; RoiResults.get(i).partcosts = RoiData.maintenance .get(listCompareRoi.getSelectedIndices()[i]).totcost; RoiResults .get(i).maintcost = RoiData.maintenance.get(listCompareRoi.getSelectedIndices()[i]).totcost + RoiData.value * RoiData.maintenance.get(listCompareRoi.getSelectedIndices()[i]).tothours * results.get(i).getResult(ResultType.WEIGHT, ResultTime.HOUR) / 1000; } // draw graph //JFreeChart chart = ChartFactory.createBarChart("", "", "Maintenance Cost ( / year)", maintdata, PlotOrientation.VERTICAL, false, true, false); JFreeChart chart = ChartFactory.createStackedBarChart("", "", "Maintenance Cost ( / year)", maintdata, PlotOrientation.VERTICAL, true, true, false); CategoryPlot cp = chart.getCategoryPlot(); cp.setBackgroundPaint(new Color(240, 240, 240)); cp.setRangeGridlinePaint(Color.gray); CategoryItemRenderer renderer = new CustomRenderer( new Paint[] { new Color(255, 85, 85), new Color(85, 85, 255), new Color(85, 255, 85), new Color(251, 251, 0), new Color(86, 228, 200) }); //cp.setRenderer(renderer); cp.setShadowGenerator(new DefaultShadowGenerator(7, Color.DARK_GRAY, 1f, 5, -Math.PI / 4)); BarRenderer b = (BarRenderer) cp.getRenderer(); b.setBarPainter(new StandardBarPainter()); renderer.setBaseToolTipGenerator( new StandardCategoryToolTipGenerator("{1}, {2}", NumberFormat.getInstance())); ValueAxis va = cp.getRangeAxis(); va.setLabelFont(new Font("Tahoma", Font.BOLD, 13)); RoiResults.setMaintGraph(chart); // Display results graph try { pnlGraphMaint.remove(lblNoGraph3); } catch (Exception e) { } try { pnlGraphMaint.remove(pnlGraphMaintInner); } catch (Exception e) { } pnlGraphMaintInner = new ChartPanel(RoiResults.getMaintGraph()); pnlGraphMaintInner.setBounds(2, 2, 435, 238); pnlGraphMaintInner.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON1 && pnlGraphMaintInner.contains(e.getPoint()) && RoiResults != null && RoiResults.getMaintGraph() != null) { JFreeChart chart = RoiResults.getMaintGraph(); JFrame pop = new JFrame(); pop.getContentPane().add(new ChartPanel(chart)); try { pop.setIconImage(ImageIO.read(FrmMain.class.getResourceAsStream("/atlas/logo.png"))); } catch (Exception e11) { } pop.setTitle("ROI Graph"); pop.pack(); pop.setLocationRelativeTo(frmTitanRoiCalculator); pop.setVisible(true); } } }); pnlGraphMaint.add(pnlGraphMaintInner); pnlGraphMaintInner.repaint(); // Update production loss stat try { int sel = cmbMachinesmaintenance.getSelectedIndex(); if (arrayContains(listCompareRoi.getSelectedIndices(), sel)) lblProdLoss .setText("" + formatDecimal(RoiData.value * RoiData.maintenance.get(sel).tothours * results.get(arrayIndex(listCompareRoi.getSelectedIndices(), sel)) .getResult(ResultType.WEIGHT, ResultTime.HOUR) / 1000) + " / year"); else lblProdLoss.setText("Machine not selected"); } catch (Exception e) { lblProdLoss.setText("0.00 / year"); } // marginal improvement label int ind1 = cmbMargMaint1.getSelectedIndex(); int ind2 = cmbMargMaint2.getSelectedIndex(); double diff = maintdata.getValue(0, ind1).doubleValue() + maintdata.getValue(1, ind1).doubleValue() - maintdata.getValue(0, ind2).doubleValue() - maintdata.getValue(1, ind2).doubleValue(); lblMarginalMaint.setText("" + formatDecimal(diff) + " per annum"); } }