[IT科技] 几个Applet实例

发表于 @ 2009-6-8 18:00:26

1.编写一个Applet,在途中加入标签“旋转角度”和文本框,安排两个按钮“顺时针旋转”和“逆时针旋转”,在文本框中填写旋转角度,通过按钮实现旋转.

几个Applet实例[

code=Java]import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class g2DRotate2 extends Applet implements ActionListener {
Label label;
TextField angle;
Button b1, b2;
int flag = 1;

public void init() {
setLayout(null);
label = new Label("旋转角度:");
label.setBounds(250, 100, 65, 20);

angle = new TextField("0.0", 10);
angle.setBounds(330, 100, 65, 20);

b1 = new Button("顺时针旋转");
b2 = new Button("逆时针旋转");
b1.setBounds(250, 130, 65, 20);
b2.setBounds(330, 130, 65, 20);
b1.addActionListener(this);
b2.addActionListener(this);

add(label);
add(angle);
add(b1);
add(b2);

setVisible(true);
}

public void paint(Graphics g) {
int x = 130, y = 100;
int i = 0;
Graphics2D g2 = (Graphics2D) g;
g.setColor(Color.blue);
g2.draw(new Ellipse2D.Double(x, y, 20, 90));

g.setColor(Color.black);
g.drawRect(x, y, 20, 90);

g2.translate(150, 100);// 平移到(150,100),作为下面旋转的起点
if (flag == 1)
g2.rotate(Double.parseDouble(angle.getText()));// 将角度转换成弧度
else
g2.rotate(-Double.parseDouble(angle.getText()));
g.setColor(Color.blue);
g2.draw(new Ellipse2D.Double(-20, 0, 20, 90));

g.setColor(Color.black);
g.drawRect(-20, 0, 20, 90);
}

public void actionPerformed(ActionEvent e) {
if (e.getSource() == b1) {
flag = 1;
repaint();
} else {
flag = -1;
repaint();
}
}
}[/code]

2.编写一个Applet,通过文本框接收放大、缩小倍数,用按钮实现缩放变换。
几个Applet实例
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class g2DScale2 extends Applet implements ActionListener {
  Button bt1;
  TextField tscaleX, tscaleY;

  public void init() {
    setLayout(null);
    scalePanel spanel = new scalePanel();
    spanel.setBounds(30, 200, 100, 50);
    add(spanel);

    bt1 = new Button("缩放变换");
    bt1.setBounds(30, 260, 60, 20);
    add(bt1);
    bt1.addActionListener(this);
    setVisible(true);
  }

  public void paint(Graphics g) {
    int i = 0;
    Graphics2D g2 = (Graphics2D) g;
    g.setColor(Color.pink);
    g.setColor(Color.blue);
    g2.draw(new Rectangle2D.Double(20, 20, 50, 50));
    g2.scale(Double.parseDouble(tscaleX.getText()), Double.parseDouble(tscaleY.getText()));
    g2.draw(new Rectangle2D.Double(20, 20, 50, 50));
    g.drawString("scale(" + tscaleX.getText() + "," + tscaleY.getText() + ")", 5, 95);

  }

  public void actionPerformed(ActionEvent arg0) {
    repaint();
  }

  class scalePanel extends Panel {
    Label lscaleX;
    Label lscaleY;

    scalePanel() {
      setLayout(new GridLayout(2, 2));
      tscaleX = new TextField("0.0", 3);
      tscaleY = new TextField("0.0", 3);
      lscaleX = new Label("X方向");
      lscaleY = new Label("Y方向");
      add(tscaleX);
      add(tscaleY);
      add(lscaleX);
      add(lscaleY);
    }

  }

}



Copyright © 2009 老紫竹
网站地图 | 最新文章 | 未读文章 | 24小时内热点文章 |津ICP备09000085号