[Java] applet awt绘图实例 坐标图 →→→→→进入此内容的聊天室

来自 , 2020-06-28, 写在 Java, 查看 103 次.
URL http://www.code666.cn/view/185e65bc
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import java.applet.*;
  4.  
  5. public class ArcTest extends Applet implements WindowListener {
  6.         ArcControls controls;
  7.  
  8.         public void init() { // Applet的入口方法
  9.                 setLayout(new BorderLayout());
  10.                 ArcCanvas c = new ArcCanvas();
  11.  
  12.                 add("Center", c);
  13.                 add("South", controls = new ArcControls(c));
  14.         }
  15.  
  16.         public void start() {
  17.                 controls.setEnabled(true); // 激活controls
  18.         }
  19.  
  20.         public void stop() {
  21.                 controls.setEnabled(false);
  22.         }
  23.  
  24.         public void windowActivated(WindowEvent e) {
  25.         }
  26.  
  27.         // 重写WindowListener的方法
  28.         public void windowClosed(WindowEvent e) {
  29.         }
  30.  
  31.         // 重写WindowListener的方法
  32.         public void windowClosing(WindowEvent e) {
  33.                 // 重写WindowListener的方法
  34.                 System.exit(0);
  35.         }
  36.  
  37.         public void windowDeactivated(WindowEvent e) {
  38.         }
  39.  
  40.         // 重写WindowListener的方法
  41.         public void windowDeiconified(WindowEvent e) {
  42.         }
  43.  
  44.         // 重写WindowListener的方法
  45.         public void windowIconified(WindowEvent e) {
  46.         }
  47.  
  48.         // 重写WindowListener的方法
  49.         public void windowOpend(WindowEvent e) {
  50.         }
  51.  
  52.         // 重写WindowListener的方法
  53.  
  54.         public static void main(String args[]) {
  55.                 Frame f = new Frame("ArcTest"); // 构造Frame
  56.                 ArcTest arcTest = new ArcTest(); // 构造arcTest
  57.                 arcTest.init();
  58.                 arcTest.start();
  59.                 f.add("Center", arcTest);
  60.                 f.setSize(300, 300);
  61.                 f.show();
  62.  
  63.                 f.addWindowListener(arcTest);
  64.         }
  65.  
  66.         @Override
  67.         public void windowOpened(WindowEvent arg0) {
  68.                 // TODO Auto-generated method stub
  69.  
  70.         }
  71. }
  72.  
  73. class ArcCanvas extends Canvas { // 类ArcCanvas
  74.         int startAngle = 0;
  75.         int endAngle = 45;
  76.         boolean filled = false;
  77.         Font font;
  78.  
  79.         public void paint(Graphics g) {
  80.                 // paint方法,该方法的作用是在Canvas上画图
  81.                 Rectangle r = getBounds();
  82.                 int hlines = r.height / 10;
  83.                 int vlines = r.width / 10;
  84.                 g.setColor(Color.pink);
  85.  
  86.                 for (int i = 1; i <= hlines; i++) {
  87.                         g.drawLine(0, i * 10, r.width, i * 10);
  88.                 }
  89.                 for (int i = 1; i <= vlines; i++) {
  90.                         g.drawLine(i * 10, 0, i * 10, r.height);
  91.                 }
  92.                 g.setColor(Color.red);
  93.                 if (filled) {
  94.                         g.fillArc(0, 0, r.width - 1, r.height - 1, startAngle, endAngle);
  95.                 } else {
  96.                         g.drawArc(0, 0, r.width - 1, r.height - 1, startAngle, endAngle);
  97.                 }
  98.  
  99.                 g.setColor(Color.black);
  100.                 g.setFont(font);
  101.                 g.drawLine(0, r.height / 2, r.width, r.height / 2);
  102.                 g.drawLine(r.width / 2, 0, r.width / 2, r.height);
  103.                 g.drawLine(0, 0, r.width, r.height);
  104.                 g.drawLine(r.width, 0, 0, r.height);
  105.                 int sx = 10;
  106.                 int sy = r.height - 28;
  107.                 g.drawString("S=" + startAngle, sx, sy);
  108.                 g.drawString("E=" + endAngle, sx, sy + 14);
  109.         }
  110.  
  111.         public void redraw(boolean filled, int start, int end) { // 重画方法
  112.                 this.filled = filled;
  113.                 this.startAngle = start;
  114.                 this.endAngle = end;
  115.                 repaint();
  116.                 // 通过调用repaint()方法,从而最终调用paint方法完成重画
  117.         }
  118. }
  119.  
  120. class ArcControls extends Panel implements ActionListener { // ArcControls类
  121.         TextField s;
  122.         TextField e;
  123.         ArcCanvas canvas;
  124.  
  125.         public ArcControls(ArcCanvas canvas) {
  126.                 Button b = null;
  127.                 this.canvas = canvas;
  128.                 add(s = new TextField("0", 4));
  129.                 add(e = new TextField("45", 4));
  130.                 b = new Button("Fill");
  131.                 b.addActionListener(this);
  132.                 add(b);
  133.                 b = new Button("Draw");
  134.                 b.addActionListener(this);
  135.                 add(b);
  136.         }
  137.  
  138.         public void actionPerformed(ActionEvent ev) {
  139.                 // 实现接口ActionListener的方法
  140.                 String label = ev.getActionCommand();
  141.                 canvas.redraw(label.equals("Fill"),
  142.                                 Integer.parseInt(s.getText().trim()),
  143.                                 Integer.parseInt(e.getText().trim()));
  144.         }
  145. }
  146.  

回复 "applet awt绘图实例 坐标图"

这儿你可以回复上面这条便签

captcha