AppletsInApplet.java
上传用户:mingda
上传日期:2017-06-20
资源大小:27691k
文件大小:3k
源码类别:

OA系统

开发平台:

Java

  1. ////////////////////////////////////////////////////////////////
  2. // AppletsInApplet.java
  3. ////////////////////////////////////////////////////////////////
  4. package cn.com.fcsoft.chart.examples;
  5. import cn.com.fcsoft.chart.*;
  6. import java.awt.*;
  7. import java.applet.*;
  8. import java.awt.event.*;
  9. /**
  10.  * This demonstrates how to use the chart applets within another applet.
  11.  * @author meiqi.
  12.  */
  13. public class AppletsInApplet extends Applet implements Runnable, ActionListener {
  14. private BarChartApplet barChart;
  15. private LineChartApplet lineChart;
  16. private PieChartApplet pieChart;
  17. private Button startButton;
  18. private Button stopButton;
  19. private TextField delayField;
  20. private int delay;
  21. private Thread scrollThread;
  22. private boolean started;
  23. /**
  24.  * Creates the applets.
  25.  */
  26. public AppletsInApplet() {
  27. // create the chart applets
  28. Panel charts = new Panel();
  29. charts.setLayout(new GridLayout(0,3));
  30. barChart = new BarChartApplet();
  31. barChart.setParentApplet(this);
  32. barChart.setParameterPrefix("bar_");
  33. charts.add(barChart);
  34. lineChart = new LineChartApplet();
  35. lineChart.setParentApplet(this);
  36. lineChart.setParameterPrefix("line_");
  37. charts.add(lineChart);
  38. pieChart = new PieChartApplet();
  39. pieChart.setParentApplet(this);
  40. pieChart.setParameterPrefix("pie_");
  41. charts.add(pieChart);
  42. // add the charts and the start and stop buttons
  43. setLayout(new BorderLayout());
  44. add("Center", charts);
  45. Panel control = new Panel();
  46. control.setBackground(Color.lightGray);
  47. delayField = new TextField(5);
  48. control.add(new Label("update delay"));
  49. control.add(delayField);
  50. startButton = new Button("start");
  51. startButton.addActionListener(this);
  52. control.add(startButton);
  53. stopButton = new Button("stop");
  54. stopButton.addActionListener(this);
  55. control.add(stopButton);
  56. add("South", control);
  57. }
  58. /**
  59.  * Reads the data.
  60.  */
  61. public void init() {
  62. // read the chart applet parameters
  63. barChart.init();
  64. lineChart.init();
  65. pieChart.init();
  66. // set the update delay
  67. delayField.setText("500");
  68. String value = getParameter("delay");
  69. if (value != null) {
  70. delayField.setText(value);
  71. }
  72. }
  73. /**
  74.  * Starts or stops the data scrolling.
  75.  */
  76. public void actionPerformed(ActionEvent e) {
  77. // start thread
  78. if (e.getSource() == startButton && !started) {
  79. delay = 500;
  80. try {
  81. delay = Integer.parseInt(delayField.getText().trim());
  82. } catch (NumberFormatException ex) {
  83. delay = 500;
  84. delayField.setText("500");
  85. }
  86. scrollThread = new Thread(this);
  87. started = true;
  88. scrollThread.start();
  89. }
  90. // stop thread
  91. else if (e.getSource() == stopButton && started) {
  92. started = false;
  93. scrollThread = null;
  94. }
  95. }
  96. /**
  97.  * Scrolls data.
  98.  */
  99. public void run() {
  100. while (started) {
  101. try {
  102. Thread.sleep(delay);
  103. barChart.chart.appendSampleValue(0, barChart.chart.getSampleValue(0,0), false);
  104. lineChart.chart.appendSampleValue(0, lineChart.chart.getSampleValue(0,0), false);
  105. pieChart.chart.appendSampleValue(0, pieChart.chart.getSampleValue(0,0), false);
  106. } catch (Exception e) {
  107. e.printStackTrace();
  108. }
  109. }
  110. }
  111. }