1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | import java.awt.*;
import javax.swing.JFrame;
import lt.monarch.chart.chart2D.*;
import lt.monarch.chart.chart2D.axis.*;
import lt.monarch.chart.chart2D.engine.PlaneMapper2D;
import lt.monarch.chart.chart2D.series.BarSeries;
import lt.monarch.chart.engine.*;
import lt.monarch.chart.mapper.*;
import lt.monarch.chart.marker.TextMarker;
import lt.monarch.chart.models.ChartDataModel;
import lt.monarch.chart.style.enums.*;
import lt.monarch.chart.swing.JChartPanel;
import lt.monarch.chart.view.LabeledChart;
public class TextMarkerDemo extends JFrame
{
private transient JChartPanel m_chartPanel;
public TextMarkerDemo ()
{
initChart();
add(m_chartPanel);
}
protected void initChart()
{
/*
* Creating data
*/
ChartDataModel data = new ChartDataModel();
data.add(new Object[] { "Jan", new Double(19) });
data.add(new Object[] { "Feb", new Double(14) });
data.add(new Object[] { "Mar", new Double(15) });
data.add(new Object[] { "Apr", new Double(24) });
data.add(new Object[] { "May", new Double(36) });
data.add(new Object[] { "Jun", new Double(58) });
data.add(new Object[] { "Jul", new Double(72) });
data.add(new Object[] { "Aug", new Double(66) });
data.add(new Object[] { "Sep", new Double(44) });
data.add(new Object[] { "Oct", new Double(38) });
data.add(new Object[] { "Nov", new Double(32) });
data.add(new Object[] { "Dec", new Double(24) });
/*
* Creating mappers
*/
MathAxisMapper yMapper = new MathAxisMapper(0, 80);
LabelAxisMapper xMapper = new LabelAxisMapper();
xMapper.registerKey("Jan");
xMapper.registerKey("Feb");
xMapper.registerKey("Mar");
xMapper.registerKey("Apr");
xMapper.registerKey("May");
xMapper.registerKey("Jun");
xMapper.registerKey("Jul");
xMapper.registerKey("Aug");
xMapper.registerKey("Sep");
xMapper.registerKey("Oct");
xMapper.registerKey("Nov");
xMapper.registerKey("Dec");
/*
* Creating and setting X axis
*/
Axis2DX axisX = new Axis2DX(xMapper);
axisX.setTitle("Months");
axisX.setScrollable(true);
/*
* Creating and setting Y axis
*/
Axis2DY axisY = new Axis2DY(yMapper);
axisY.setTitle("mm");
axisY.setScrollable(true);
/*
* Creating and setting series
*/
BarSeries bars = new BarSeries(data, xMapper, yMapper);
bars.setOrientation(Orientation.VERTICAL);
bars.getPaintStyle().setPaintMode(PaintMode.GRADIENT_PAINT);
bars.getPaintStyle().getGradientStyle().setColors(new Color(86, 175, 50).darker(), new Color(86, 175, 50, 200));
bars.getPaintStyle().setForeground(new Color(60, 120, 181, 255).darker());
/*
* Setting TextMarker
*/
TextMarker textMarker = new TextMarker("Average High Temp. 7.0\u00B0C\nDaily Mean Temp. 2.4\u00B0C\nAverage Low Temp. -2.3\u00B0C\nPrecipation Total 442mm", axisX, axisY);
textMarker.setPosition("Jan", 75d);
textMarker.getPaintStyle().setBackground(new Color(62, 62, 62).brighter());
textMarker.getTextStyle().setFont(new Font("tahoma", Font.BOLD, 10));
textMarker.getTextStyle().setColor(Color.WHITE);
textMarker.setAlignment(Alignment.RIGHT, Alignment.BOTTOM);
textMarker.getPaintStyle().setTransparencyValue(225);
/*
* Creating and setting grid
*/
Grid grid = new Grid(new PlaneMapper2D(), null, null);
grid.setPaintMode(PaintMode.GRADIENT_PAINT);
grid.getPaintStyle().getGradientStyle().setColors(new Color(195, 195, 195), new Color(240, 240, 240));
grid.getPaintStyle().getGradientStyle().setGradientStart(0.5f, 0f);
grid.getPaintStyle().getGradientStyle().setGradientEnd(0.5f, 1f);
grid.getPaintStyle().setForeground(Color.GRAY);
/*
* Set setting of chart
*/
Chart2D chart = new Chart2D();
chart.setObjects(new ChartObject[] { grid, bars, textMarker });
chart.setXAxis(axisX);
chart.setYAxis(axisY);
BarSeries.setSeriesSpacing(xMapper, -0.1f);
/*
* Creating chart title
*/
LabeledChart m_chart = new LabeledChart(chart);
m_chart.setTitle("Precipitation Averages for Novosibirsk");
m_chartPanel = new JChartPanel(m_chart);
m_chartPanel.enableToolTips();
m_chartPanel.setHotSpotMap(new SimpleHotSpotMap());
}
public static void main(String[] args)
{
TextMarkerDemo frame = new TextMarkerDemo();
frame.setSize(new Dimension(600, 400));
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setTitle("Precipitation Averages for Novosibirsk");
frame.setVisible(true);
}
} |