Java awt组建学习,图像翻转操作

import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Demo extends JFrame{
private Image image=new ImageIcon(“2.jpg”).getImage();
private int sx1,sy1,sx2,sy2;//原左上角和右下角的坐标
private int dx1,dy1,dx2,dy2;//目标左上角和右下角的坐标
private int origin,height,width;
public Demo() {
/*
* 初始化图片参数
/
width=image.getWidth(this);
height=image.getHeight(this);
sx1=dx1=origin;
sy1=dy1=origin;
sx2=dx2=width;
sy2=dy2=height;
setDefaultCloseOperation(EXIT_ON_CLOSE);
setBounds(200, 200, 500, 400);
/

* 添加画布
/
Container c=getContentPane();
Mycanvas canvas1=new Mycanvas();
c.add(canvas1);
/

* 添加面板
*/
JPanel panel=new JPanel();
c.add(panel,BorderLayout.SOUTH);
JButton btn1=new JButton(“水平翻转”);
btn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dx1=Math.abs(width-dx1);
dx2=Math.abs(width-dx2);
canvas1.repaint();
}
});
JButton btn2=new JButton(“垂直翻转”);
btn2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dy1=Math.abs(width-dy1);
dy2=Math.abs(width-dy2);
canvas1.repaint();
}
});
panel.add(btn1);
panel.add(btn2);
setVisible(true);
}
public static void main(String[] args) {
new Demo();
}
class Mycanvas extends Canvas{
@Override
public void paint(Graphics g) {
Graphics2D g2=(Graphics2D)g;
g2.drawImage(image, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, this);
}
}
}

你可能感兴趣的:(Java,awt)