📄 panel1.java
字号:
package transferobject;import java.awt.*;import javax.swing.*;import java.awt.image.*;import java.awt.geom.*;import java.math.*;/** * <p>Title: TransferObject Demo</p> * <p>Description: This is a TransferObject Demo</p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: D6-125</p> * @author liujun * @version 1.0 */public class Panel1 extends JPanel { BorderLayout borderLayout1 = new BorderLayout(); //声明两个自己的变量 GeneralPath gPath1;//一个三角形 AffineTransform AffineTransform1;//坐标变化用变量 public Panel1() { try { jbInit(); } catch(Exception ex) { ex.printStackTrace(); } } void jbInit() throws Exception { this.setLayout(borderLayout1); //创建三角形 gPath1 = new GeneralPath(); gPath1.moveTo(0,-50); gPath1.lineTo(50,50); gPath1.lineTo(-50,50); gPath1.closePath(); //创建坐标变换类 AffineTransform1 = new AffineTransform(); //设置初始变换值 setRotate(45.0f); } protected void paintComponent(Graphics g) { /**@todo: Override this javax.swing.JComponent method*/ super.paintComponent( g); Graphics2D g2 = (Graphics2D)g; //画一个没有变换的原始图形 g2.translate(getWidth() / 2, getHeight() / 2); g2.setPaint(Color.blue); g2.draw(gPath1); //变换后的图形 g2.transform(AffineTransform1); g2.setPaint(Color.red); g2.draw(gPath1); } public void setRotate(float x) {//旋转变换 AffineTransform1.setToRotation(Math.toRadians(x)); repaint(); } public void setTranslateX(float x) { //水平平移 AffineTransform1.setToTranslation(x, 0); repaint(); } public void setTranslateY(float y) { //垂直平移 AffineTransform1.setToTranslation(0, y); repaint(); } public void setScale(float x) { //放大和缩小变换 AffineTransform1.setToScale(x, x); repaint(); } public void setShear(float x) { //倾斜变换 AffineTransform1.setToShear(x, 0); repaint(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -