我想点击按钮就让图片翻转。可是只能翻转一次是怎么回事////
这里点按钮只能翻转一次,然后再点就不变了
代码
public class My4 extends JFrame{
public My4() {
setVisible(true);
setBounds(0, 100, 500, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("图像翻转");
add(new MyPanels());
validate();
}
//-------------------------------------------------------------
public static void main(String[] args) {
// TODO Auto-generated method stub
new My4();
}
}
class MyPanels extends JPanel implements ActionListener{
private int w;//图片长度
private int h;//图片宽
BufferedImage image;
JButton button1;
Graphics2D g2;
boolean change=false;
public MyPanels() {
button1=new JButton("翻转");
add(button1);
button1.addActionListener(this);
try {
image=ImageIO.read(new File("D:\\素材\\恐龙1.png"));
w=image.getWidth();
h=image.getHeight();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void paint(Graphics g) {
// TODO Auto-generated method stub
int t=1;
super.paint(g);
g2=(Graphics2D) g;
if(!change) {
g2.drawImage(image, 30, 30, w, h, this);
}
//shx:水平方向的倾斜量; shy:垂直方向的倾斜量。
//p.shear(0.3, 0);
//g2.drawImage(image, p, this);
//图像向X轴移动10px,Y轴移动50px
//tr.translate(40, 50);
//旋转30度
//tr.rotate(30*3.14159/180);
//System.out.println(change);
else {
//是这里有问题吗
System.out.println("改");
AffineTransform p = new AffineTransform();
p.scale(-1,1); //向反反向缩放-1
p.translate(-(w+60), 0);
g2.setTransform(p);
g2.drawImage(image, 30, 30, w, h, this);
}
}
//实现接口
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==button1) {
change=true;
repaint();
}
}
}