package com;import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;public class EventImageTest extends JFrame
{
JButton spread; JPanel right;
JPanel left;
protected PanelTest pt = new PanelTest();
public EventImageTest()
{
super("Test");
setLayout(null);
setSize(800, 600);
left = new JPanel();
right = new JPanel();
left.setLayout(null);
left.setBounds(10, 10, 200, 500);
left.setBackground(Color.blue);
//扩大按钮
spread = new JButton("扩大");
spread.setBounds(30, 30, 60, 30);
spread.addMouseListener(new MymoveMouse());
//缩小按钮
shorten = new JButton("缩小");
shorten.setBounds(30, 90, 60, 30);
shorten.addMouseListener(new MyShortenMouse());
//还原按钮
revert = new JButton("还原");
revert.setBounds(30, 150, 60, 30);
revert.addMouseListener(new MyRevertMouse());
left.add(spread);
left.add(shorten);
left.add(revert);
/**右容器中重写了JPANEL中的PAINT方法
* 在其中加载一副图片
*/
right = new JPanel();
right.setLayout(null);
right.setBounds(230, 10, 500, 500);
right.setBackground(Color.cyan);
//加入图片
pt.setImageFile("E:\\Sunset.jpg");
pt.addMouseMotionListener(new MyShiftMouse());
pt.setVisible(true);
pt.setSize(400, 400);
right.add(pt);
//把left,right加入JFRAME中
add(left);
add(right);
this.getContentPane().setBackground(Color.YELLOW);
this.setVisible(true);
} public static void main(String args[])
{
new EventImageTest();
}
//扩大命令按钮响应的事件
class MymoveMouse extends MouseAdapter
{
public void mouseClicked(MouseEvent e)
{
pt.re();
}
}
}
}PanelTest类
package com;
import java.awt.Graphics;
import java.awt.Image;import javax.swing.ImageIcon;
import javax.swing.JPanel;class PanelTest extends JPanel
{
/**
*
*/
private static final long serialVersionUID = 1L;
protected Image img;
protected ImageIcon imageicon;
int w ; int h ;
public PanelTest()
{
super();
}
public void setImageFile(String url)
{
imageicon = new ImageIcon(url);
img = imageicon.getImage();
w = img.getWidth(this);
h = img.getHeight(this);
}
public void paint(Graphics g)
{
if(null == img)
{
g.drawString("image is null!",50,50);
}
else
g.drawImage(img,100,100,w+10,h+10,null);
}
public void re()
{
repaint();
}
}
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;public class EventImageTest extends JFrame
{
JButton spread; JPanel right;
JPanel left;
protected PanelTest pt = new PanelTest();
public EventImageTest()
{
super("Test");
setLayout(null);
setSize(800, 600);
left = new JPanel();
right = new JPanel();
left.setLayout(null);
left.setBounds(10, 10, 200, 500);
left.setBackground(Color.blue);
//扩大按钮
spread = new JButton("扩大");
spread.setBounds(30, 30, 60, 30);
spread.addMouseListener(new MymoveMouse());
//缩小按钮
shorten = new JButton("缩小");
shorten.setBounds(30, 90, 60, 30);
shorten.addMouseListener(new MyShortenMouse());
//还原按钮
revert = new JButton("还原");
revert.setBounds(30, 150, 60, 30);
revert.addMouseListener(new MyRevertMouse());
left.add(spread);
left.add(shorten);
left.add(revert);
/**右容器中重写了JPANEL中的PAINT方法
* 在其中加载一副图片
*/
right = new JPanel();
right.setLayout(null);
right.setBounds(230, 10, 500, 500);
right.setBackground(Color.cyan);
//加入图片
pt.setImageFile("E:\\Sunset.jpg");
pt.addMouseMotionListener(new MyShiftMouse());
pt.setVisible(true);
pt.setSize(400, 400);
right.add(pt);
//把left,right加入JFRAME中
add(left);
add(right);
this.getContentPane().setBackground(Color.YELLOW);
this.setVisible(true);
} public static void main(String args[])
{
new EventImageTest();
}
//扩大命令按钮响应的事件
class MymoveMouse extends MouseAdapter
{
public void mouseClicked(MouseEvent e)
{
pt.re();
}
}
}
}PanelTest类
package com;
import java.awt.Graphics;
import java.awt.Image;import javax.swing.ImageIcon;
import javax.swing.JPanel;class PanelTest extends JPanel
{
/**
*
*/
private static final long serialVersionUID = 1L;
protected Image img;
protected ImageIcon imageicon;
int w ; int h ;
public PanelTest()
{
super();
}
public void setImageFile(String url)
{
imageicon = new ImageIcon(url);
img = imageicon.getImage();
w = img.getWidth(this);
h = img.getHeight(this);
}
public void paint(Graphics g)
{
if(null == img)
{
g.drawString("image is null!",50,50);
}
else
g.drawImage(img,100,100,w+10,h+10,null);
}
public void re()
{
repaint();
}
}
...
spread = new JButton("bigger");
spread.setActionCommand("spread");
...
public void actionPerformed(ActionEvent e) {
String actionCommand = e.getActionCommand();
if(actionCommand.equals("spread")){
pt.re();
}
}....